leetcode 216 組合總和 III

2021-10-09 08:47:41 字數 1272 閱讀 9262

目錄

一、題目內容

二、解題思路

三、**

找出所有相加之和為 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]]

dfs+回溯,注意長度的限制

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 題意 題目描述 題解...