找出所有相加之和為 n 的 k 個數的組合。組合中只允許含有 1 - 9 的正整數,並且每種組合中不存在重複的數字。
說明:
示例 1:
輸入: k = 3, n = 7示例 2:輸出: [[1,2,4]]
輸入: k = 3, n = 9輸出: [[1,2,6], [1,3,5], [2,3,4]]
class
solution
; # 因為只能用1
-9的數字,且每個字只能用一次,所以用乙個一維陣列對應九個數字,每個數字的次數為1
int index=
1; # 該變數用於避免在遞迴回溯的時候出現重複值
public
: vectorint>>
combinationsum3
(int k,
int n)};
function
(k,n,num,a,index)
;return nums;
}void
function
(int k,
int n, vector<
int> num,
int*a,
int index) # 遞迴回溯
if(k==
0) # 如果k=
0,則停止迭代
for(
int i=index;i<=9;
++i) # 遍歷每個數字,同時用index初始化i,每一次迭代只能做比當前索引更大的索引對應的值,這樣可以避免出現重複
}}};
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 題意 題目描述 題解...
leetcode 216 組合總和 III
目錄 一 題目內容 二 解題思路 三 找出所有相加之和為 n 的 k 個數的組合。組合中只允許含有 1 9 的正整數,並且每種組合中不存在重複的數字。說明 所有數字都是正整數。解集不能包含重複的組合。示例 1 輸入 k 3,n 7 輸出 1,2,4 示例 2 輸入 k 3,n 9 輸出 1,2,6 ...