色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java求所有和等于n的方案

錢衛國1年前7瀏覽0評論

Java是一種廣泛使用的編程語言,常用于開發各種類型的應用程序。在本文中,我們將探討如何使用Java編寫程序來求解所有和等于n的方案。

public static void findAllSum(int[] arr, int sum) {
if (arr == null || arr.length == 0) {
return;
}
Listlist = new ArrayList<>();
backtrack(arr, list, 0, sum);
}
private static void backtrack(int[] arr, Listlist, int start, int sum) {
if (sum == 0) {
System.out.println(list.toString());
} else if (sum< 0) {
return;
} else {
for (int i = start; i< arr.length; i++) {
list.add(arr[i]);
backtrack(arr, list, i, sum - arr[i]);
list.remove(list.size() - 1);
}
}
}

上述代碼中,我們定義了一個findAllSum方法用于求所有和等于n的方案。方法中先判斷了數組是否為空,如果不為空則定義了一個List對象和一個backtrack方法。backtrack方法使用遞歸回溯的方式求解所有和等于n的方案,其中傳入的參數分別是數組arr、List對象list、起始下標start以及目標和sum。當sum等于0時,我們打印出當前得到的一個方案。當sum小于0時,直接返回。當sum大于0時,我們通過循環遍歷數組元素,并將其加入list對象中。然后再遞歸調用backtrack方法,更新list對象和sum值。最后,將list對象中的最后一個元素刪除,以便進行下一次迭代。