Ho una lista di matite e un elenco di gomme. L'obiettivo è quello di verificare se tutte le gomme possono essere messe sulle matite. Una gomma può adattarsi a più matite diverse. Le matite possono avere al massimo 1 cancellino.Algoritmo di corrispondenza
Se metto in circolo tutte le gomme e le metto sulle matite, finisco con gomme che non si adattano a matite vuote, anche se c'è una soluzione che ha tutte le gomme sulle matite.
Quale algoritmo è possibile utilizzare per calcolare una combinazione che si adatta a tutti i gommini delle matite?
public class Eraser(){
public boolean matches(Pencil p){
//unimportant
}
}
public class Pencil(){
}
Il mio tentativo
public boolean doMatch(List<Eraser> erasers, List<Pencil> pencils){
for (Eraser e : erasers) {
boolean found = false;
Iterator it = pencils.iterator();
while (it.hasNext()) {
Pencil p = (Pencil) it.next();
if (e.matches(p)) {
found = true;
it.remove();
break;
}
}
if (!found) {
return false;
}
}
return true;
}
Quali sono i criteri di corrispondenza? – ChiefTwoPencils
C'è qualcosa di speciale in quelle matite e gomme? Sembrerebbe che se ci sono meno gomme delle matite, allora la tua risposta è "sì", e se ci sono più gomme delle matite, la tua risposta è "no". Quindi c'è un dettaglio che contraddice questo? – RealSkeptic
@ChiefTwoPencils Corrisponde o non corrisponde. Non ci sono criteri – user3552325