leetcode 40 組合總和2 js

2021-10-22 23:09:02 字數 930 閱讀 5725

給定乙個陣列 candidates 和乙個目標數 target ,找出 candidates 中所有可以使數字和為 target 的組合。

candidates 中的每個數字在每個組合中只能使用一次。

說明:

示例 1:

輸入: candidates = [10,1,2,7,6,1,5], target = 8,

所求解集為:

[ [1, 7],

[1, 2, 5],

[2, 6],

[1, 1, 6]

]

解題思路:

分析本題所採用的資料結構與演算法,可知屬於樹形問題,採用回溯法。

按照刻意練習的思路思考:

1、遞迴樹和狀態變數。狀態變數:當期值下標、總和、新陣列

2、遞迴出口:sum === target push

3、選擇列表: for迴圈當前下標+1後的元素

4、剪枝:sum>target return

5、撤銷操作:for迴圈中pop

var

combinationsum2

=function

(candidates, target)

if(sum > target)

for(

let i = start; i < len; i++)}

dfs(0,

0,);

return res;};

console.

log(

combinationsum2([

10,1,

2,7,

6,1,

5],8

));

LeetCode40 組合總和2

給定乙個陣列 candidates 和乙個目標數 target 找出 candidates 中所有可以使數字和為 target 的組合。candidates 中的每個數字在每個組合中只能使用一次。說明 所有數字 包括目標數 都是正整數。解集不能包含重複的組合。示例 1 輸入 candidates 1...

leetcode 40 組合總和

給定乙個陣列candidates和乙個目標數target,找出candidates中所有可以使數字和為target的組合。candidates中的每個數字在每個組合中只能使用一次。說明 示例 1 輸入 candidates 10,1,2,7,6,1,5 target 8,所求解集為 1,7 1,2,...

leetcode40 組合總和 II

給定乙個陣列 candidates 和乙個目標數 target 找出 candidates 中所有可以使數字和為 target 的組合。candidates 中的每個數字在每個組合中只能使用一次。說明 所有數字 包括目標數 都是正整數。解集不能包含重複的組合。示例 1 輸入 candidates 1...