首页 > 代码库 > Leetcode 216. Combination Sum III
Leetcode 216. Combination Sum III
Find all possible combinations of k numbers that add up to a number n, given that only numbers from 1 to 9 can be used and each combination should be a unique set of numbers.
Example 1:
Input: k = 3, n = 7
Output:
[[1,2,4]]
Example 2:
Input: k = 3, n = 9
Output:
[[1,2,6], [1,3,5], [2,3,4]]
这一题和combiantion sum I/II 其实很类似。只不过candidates只有[1,2,...,9]。而且只有当len(line) == k 并且 sum(line) = n才把line添加到res里面。
1 class Solution(object): 2 def combinationSum3(self, k, n): 3 """ 4 :type k: int 5 :type n: int 6 :rtype: List[List[int]] 7 """ 8 nums = list(range(1,10)) 9 res = [] 10 self.helper(nums, k, n, res, []) 11 return res 12 13 def helper(self, nums, k, target, res, line): 14 if target == 0 and len(line) == k: 15 res.append([x for x in line]) 16 17 for i, x in enumerate(nums): 18 if x <= target: 19 line.append(x) 20 self.helper(nums[i+1:], k, target -x, res, line) 21 line.pop()
Leetcode 216. Combination Sum III
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。