2020 9 11 每日一題 組合總和 III

2021-10-09 08:43:32 字數 736 閱讀 2536

找出所有相加之和為 n 的 k 個數的組合。組合中只允許含有 1 - 9 的正整數,並且每種組合中不存在重複的數字。

說明:所有數字都是正整數。 解集不能包含重複的組合。 示例 1:

輸入: k = 3, n = 7 輸出: [[1,2,4]] 示例 2:

輸入: k = 3, n = 9 輸出: [[1,2,6], [1,3,5], [2,3,4]]

怎麼又是組合總數力扣是找不出來別的題了嗎

anyway 總之和前兩次差不多的做法,回溯演算法就好。加乙個變數用於標記還剩幾個數可以選。有一些奇怪的剪枝。我是從小大**數的,所以可以剪掉當前數大於等於目標的一些分支。另外需要注意題目中只讓選1到9,在結束條件中需要加乙個當前數字不能大於9的判斷:

class

solution

else

cur.

remove

(cur.

size()

-1);

rec(curnum +

1, target, left, ans, cur);}

public list

>

combinationsum3

(int k,

int n)

}

看看題解…嗯可以看作時組合問題加乙個求和判斷…不過感覺沒必要強行轉化成另乙個問題,我這樣直接解決也可以

anyway,過了就好

每日一題 組合總和 II(中等)

組合總和 ii 給定乙個陣列 candidates 和乙個目標數 target 找出 candidates 中所有可以使數字和為 target 的組合。示例 1 輸入 candidates 10,1,2,7,6,1,5 target 8,所求解集為 1,7 1,2,5 2,6 1,1,6 示例 2 ...

每日一題 32組合總和

給定乙個無重複元素的陣列 candidates 和乙個目標數 target 找出 candidates 中所有可以使數字和為 target 的組合。candidates 中的數字可以無限制重複被選取。說明 所有數字 包括 target 都是正整數。解集不能包含重複的組合。示例 1 輸入 candid...

39 組合總和(每日一題)

給定乙個無重複元素的陣列 candidates 和乙個目標數 target 找出 candidates 中所有可以使數字和為 target 的組合。candidates 中的數字可以無限制重複被選取。說明 所有數字 包括 target 都是正整數。解集不能包含重複的組合。示例 1 輸入 candid...