Tôi có danh sách bút chì và danh sách các loại tẩy. Mục đích của nó là để kiểm tra xem có phải tất cả các tẩy có thể được đặt trên bút chì hay không. Một cục tẩy có thể vừa với nhiều bút chì khác nhau. Bút chì có thể có tối đa 1 cục tẩy.Thuật toán đối sánh
Nếu tôi chỉ vòng qua tất cả các tẩy và đặt chúng vào bút chì, tôi kết thúc với tẩy mà không phù hợp với bút chì trống, mặc dù có một giải pháp có tất cả các tẩy trên bút chì.
Tôi có thể sử dụng thuật toán nào để tìm ra một kết hợp phù hợp với tất cả các tẩy xóa trên bút chì?
public class Eraser(){
public boolean matches(Pencil p){
//unimportant
}
}
public class Pencil(){
}
nỗ lực của tôi
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;
}
Tiêu chí phù hợp là gì? – ChiefTwoPencils
Có điều gì đặc biệt về những bút chì và tẩy đó không? Nó sẽ có vẻ rằng nếu có ít tẩy hơn bút chì, sau đó câu trả lời của bạn là "có", và nếu có nhiều erasers hơn bút chì, câu trả lời của bạn là "không". Vì vậy, có một chi tiết mâu thuẫn với điều đó? – RealSkeptic
@ChiefTwoPencils Nó hoặc là phù hợp hoặc nó không. Không có tiêu chí. – user3552325