Leetcode 39 组合总和 (每日一题 20210806)
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 39 组合总和 (每日一题 20210806)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
給定一個無重復元素的正整數(shù)數(shù)組?candidates?和一個正整數(shù)?target?,找出?candidates?中所有可以使數(shù)字和為目標數(shù)?target?的唯一組合。candidates?中的數(shù)字可以無限制重復被選取。如果至少一個所選數(shù)字數(shù)量不同,則兩種組合是唯一的。?對于給定的輸入,保證和為?target 的唯一組合數(shù)少于 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]]鏈接:https://leetcode-cn.com/problems/combination-sum# 方法一
class Solution:def combinateSum(self,condatiate:List,target:int)->List[List[int]]:def dfs(condatitate, begin, size, res, path, target):if target == 0:res.append(path)if target < 0:returnfor index in range(begin, size):dfs(condatitate, index, size, res, path + [condatitate[index]], target - condatitate[index])size = len(condatitate)if size == 0:return []res = []path = []dfs(condatiate, 0, size, res, path, target)return res# 方法二
class Solution:def combinateSum(self,condatiate:List,target:int)->List[List[int]]:def dfs(condatitate, begin, size, res, path, target):if target == 0:res.append(path)for index in range(begin, size):if target - condatitate[index] < 0:breakdfs(condatitate, index, size, res, path + [condatitate[index]], target - condatitate[index])size = len(condatitate)if size == 0:return []res = []path = []condatiate.sort()dfs(condatiate, 0, size, res, path, target)return res
總結(jié)
以上是生活随笔為你收集整理的Leetcode 39 组合总和 (每日一题 20210806)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode 69 x的平方根 (每
- 下一篇: 异常检测-箱线图