У меня проблемы с перечислением всех возможных комбинаций элементов для получения определенной суммы с помощью возврата - PullRequest
0 голосов
/ 02 апреля 2020

Вопрос: У фермера есть стая кур, каждая из которых откладывает по несколько яиц. Она представляет яйца, откладываемые каждой курицей в массиве, например:

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;
    }
}

Я не знаю, как поступить, потому что у меня есть логические возвращаемые значения, которые заставляют это выйти, когда комбинация найдена. Как мне это исправить?

...