目錄
一、題目內容
二、解題思路
三、**
找出所有相加之和為 n 的 k 個數的組合。組合中只允許含有 1 - 9 的正整數,並且每種組合中不存在重複的數字。
說明:所有數字都是正整數。
解集不能包含重複的組合。
示例 1:輸入: k = 3, n = 7
輸出: [[1,2,4]]
示例 2:dfs+回溯,注意長度的限制輸入: k = 3, n = 9
輸出: [[1,2,6], [1,3,5], [2,3,4]]
class solution:
def combinationsum3(self, k: int, n: int) -> list:
res =
ans =
candidates = list(range(1, 10))
m = len(candidates)
def dfs(index, n, su, ans):
if su == n:
# res.sort()
if res not in ans and len(res) == k:
# print(ans)
if su > n:
return
for i in range(index, m):
su += candidates[i]
dfs(i + 1, n, su, ans)
su -= candidates[i]
res.remove(candidates[i])
dfs(0, n, 0, ans)
return ans
if __name__ == '__main__':
k = 3
n = 9
s = solution()
ans = s.combinationsum3(k, n)
print(ans)
leetcode 216 組合總和 III
找出所有相加之和為 n 的 k 個數的組合。組合中只允許含有 1 9 的正整數,並且每種組合中不存在重複的數字。說明 示例 1 輸入 k 3,n 7 輸出 1,2,4 示例 2 輸入 k 3,n 9 輸出 1,2,6 1,3,5 2,3,4 class solution 因為只能用1 9的數字,且每...
LeetCode 216 組合總和 III
官方鏈結 找出所有相加之和為 n 的 k 個數的組合。組合中只允許含有 1 9 的正整數,並且每種組合中不存在重複的數字。說明 所有數字都是正整數。解集不能包含重複的組合。示例 1 輸入 k 3,n 7 輸出 1,2,4 示例 2 輸入 k 3,n 9 輸出 1,2,6 1,3,5 2,3,4 方案...
LeetCode 216 組合總和 III
題目描述 找出所有相加之和為 n 的 k 個數的組合。組合中只允許含有 1 9 的正整數,並且每種組合中不存在重複的數字。說明 所有數字都是正整數。解集不能包含重複的組合。輸入 4,1,0,3,10 7,3,2,3,11 輸出 0,1,9,16,100 4,9,9,49,121 題意 題目描述 題解...