leetcode 组合总和
生活随笔
收集整理的這篇文章主要介紹了
leetcode 组合总和
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
39. 組合總和
給定一個無重復元素的正整數數組 candidates 和一個正整數 target ,找出 candidates 中所有可以使數字和為目標數 target 的唯一組合。candidates 中的數字可以無限制重復被選取。如果至少一個所選數字數量不同,則兩種組合是唯一的。 對于給定的輸入,保證和為 target 的唯一組合數少于 150 個。示例 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]]
示例 3:輸入: candidates = [2], target = 1
輸出: []
示例 4:輸入: candidates = [1], target = 1
輸出: [[1]]
示例 5:輸入: candidates = [1], target = 2
輸出: [[1,1]]
resList = []def dfs(candidates, sublist, target, last):# print('sublist=',sublist)if target == 0:resList.append(sublist[:])if target< candidates[0]:print('0結束遞歸')return for n in candidates:if n > target:print('1結束遞歸')returnif n < last:continueprint('入棧')sublist.append(n)print('sublist=',sublist)print('target - n=',target - n)print('n=',n)print('#####################################')dfs(candidates,sublist,target - n, n)sublist.pop()print('出棧')print('sublist=',sublist)resList = []candidates=[2,3]
target=5
candidates = sorted(candidates)
dfs(candidates,[],target,0)print(resList)
總結
以上是生活随笔為你收集整理的leetcode 组合总和的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode 搜索插入位置
- 下一篇: wget命令出现Unable to es