Вопрос: У фермера есть стая кур, каждая из которых откладывает по несколько яиц. Она представляет яйца, откладываемые каждой курицей в массиве, например:
1 7 2 0 5 6
При заданной цели яиц мы хотим знать кур, которые при суммировании дать точную требуемую цель.
Мой код:
class Solution {
public static boolean Met(int [] eggs, int goal) {
/* write your solution here */
ArrayList<Integer> list=new ArrayList<Integer>();
helper(eggs, 0, goal,list);
System.out.println(list);
return helper(eggs, 0, goal,list);
}
public static boolean helper(int[] eggs,int index,int goal, ArrayList<Integer> list){
if(goal==0)
return true;
if(goal<0 || index>=eggs.length){
//list.clear();
return false;
}
if(helper(eggs,index+1,goal-eggs[index],list)==true){
list.add(eggs[index]);
return true;
}
if(helper(eggs,index+1,goal,list)==true)
return true;
return false;
}
}
Я не знаю, как поступить, потому что у меня есть логические возвращаемые значения, которые заставляют это выйти, когда комбинация найдена. Как мне это исправить?