leetcode 216 組合總和III 回溯

2021-10-10 21:25:53 字數 618 閱讀 3982

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

分析:本題仍然使用的是回溯+遞迴,對於1-9的每個數都有選擇和不選擇兩種情況,這裡我們需要明確的是遞迴函式的引數,我們可以用乙個引數來begin 來控制 組合中只能允許包含1-9的正整數,同時用乙個pos用來儲存已經選擇的組合中的數字。

class

solution

public

void

dfs(

int begin,

int pos,

int k,

int rest)

else

if(pos > k || rest <0)

else

if(begin >9)

else

}}

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