演算法題目 組合總和 III

2021-10-09 09:31:35 字數 601 閱讀 5164

思路:使用回溯+減枝來獲取組合,由於組合內不重複,並且為1-9的整數,解空間樹的如下圖所示:

**及**說明如下:

class solution 

private void dfs(list> reslist, listcurlist, integer k, integer n, integer start)

//迴圈當前層

for(int i = start; i <= 9; i++)

//進入子節點

dfs(reslist, curlist, k, v, i + 1);

//從子節點返回,刪除子節點資料,返回當前層。

curlist.remove(curlist.size()-1);

//減枝操作,如果相加數值已經大於n則無需在繼續迴圈

if(v <= 0) }}

}

演算法 組合總和 III

題目 找出所有相加之和為 n 的 k 個數的組合。組合中只允許含有 1 9 的正整數,並且每種組合中不存在重複的數字。說明 所有數字都是正整數。解集不能包含重複的組合。示例 2 輸入 k 3,n 9 輸出 1,2,6 1,3,5 2,3,4 思路 又是一道組合,挺好的,書讀百遍其義自見,同型別的題多...

組合總和 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 cl...

組合總和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 s...