leetcode 39 組合總和 js

2021-10-22 23:09:02 字數 975 閱讀 5633

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

candidates 中的數字可以無限制重複被選取。

說明:

所有數字(包括 target)都是正整數。

解集不能包含重複的組合。

示例 1:

輸入:candidates = [2,3,6,7], target = 7,

所求解集為:

[ [7],

[2,2,3]

]

解題思路:

我們來思考一下題目是需要使用什麼資料結構和演算法。首先要求總和,就是在所給陣列中進行選擇,可以形成一顆樹形結構,為樹形問題,故可以採取回溯法來解決。

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

1、遞迴樹和狀態變數。狀態變數為當前值下標、當前和、新陣列。

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

3、選擇列表 for迴圈當前下標後的陣列 push進temp中,遞迴下一層

4、剪枝:sum>target return

5、撤銷 for中撤銷 pop

var

combinationsum

=function

(candidates, target)

if(sum > target)

for(

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

dfs(0,

0,);

return res;};

console.

log(

combinationsum([

2,3,

6,7]

,7))

;

LeetCode 39 組合總和

給定乙個無重複元素的陣列candidates和乙個目標數target,找出candidates中所有可以使數字和為target的組合。candidates中的數字可以無限制重複被選取。說明 示例 1 輸入 candidates 2,3,6,7 target 7,所求解集為 7 2,2,3 示例 2 ...

leetcode39 組合總和

參考 class solution if next num.size target num next 0 邊界條件 return 對於每個元素,有兩種處理方式,選當前元素或者不選當前元素 psol.push back num next 選當前元素 search num,next,psol,targe...

LeetCode39組合總和

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