LeetCode 216 組合總和 III

2021-10-04 10:17:30 字數 1059 閱讀 3522

官方鏈結

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

方案:模板

result = 

def backtrack(路徑, 選擇列表):

if 滿足結束條件:

result.add(路徑)

return

for 選擇 in 選擇列表:

做選擇backtrack(路徑, 新的選擇列表)

撤銷選擇

class solution:

def combinationsum3(self, k: int, n: int) -> list[list[int]]:

result =

def dp(path, length):

if sorted(path) not in result and len(path)==k and sum(path)==n:

if sorted(path) in result or len(path) >= k or sum(path) >= n:

return

for i in range(length, 10):

dp(path, i+1)

path.pop()

dp(, 1)

return result

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 的正整數,並且每種組合中不存在重複的數字。說明 所有數字都是正整數。解集不能包含重複的組合。輸入 4,1,0,3,10 7,3,2,3,11 輸出 0,1,9,16,100 4,9,9,49,121 題意 題目描述 題解...

leetcode 216 組合總和 III

目錄 一 題目內容 二 解題思路 三 找出所有相加之和為 n 的 k 個數的組合。組合中只允許含有 1 9 的正整數,並且每種組合中不存在重複的數字。說明 所有數字都是正整數。解集不能包含重複的組合。示例 1 輸入 k 3,n 7 輸出 1,2,4 示例 2 輸入 k 3,n 9 輸出 1,2,6 ...