LeetCode39組合總和

2021-09-10 17:08:01 字數 802 閱讀 7395

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

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

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

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

示例 1:

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

所求解集為:

[[7],

[2,2,3]

]示例 2:

輸入: candidates = [2,3,5], target = 8,

所求解集為:

[[2,2,2,2],

[2,3,3],

[3,5]

]解題思路:首先還是按照遞迴框架寫出來。然後考慮遞迴結束的條件,想到遞迴結束跟遞迴引數設計有關係,idx如果掃瞄到陣列外面會結束,但是我們想要的答案是target==0時的解,因此多了一次遞迴結束的判斷,遞迴結束判斷的時候解的拼湊從來不是重點。

因此重點放在遞迴上,那麼遞迴部分怎麼寫,顯然每到乙個idx位置,都有兩種選擇,選和不選當前數字,但是idx要不要加一,因為可以重複選,因此還是可以在robot中放idx,然後就是要記錄當前這個數字了,明顯用path記錄,為什麼不用boolean陣列記錄,因為很麻煩,然後target為0,拼湊一下答案就行。

class solution 

public list> combinationsum(int candidates, int target)

}

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...