摘要:題目要求輸入和,找到所有個不同數字的組合,這些組合中數字的和為參考,解答這是一道典型的的題目,通過遞歸的方式記錄嘗試的節點,如果成功則加入結果集,如果失敗則返回上一個嘗試的節點進行下一種嘗試。
題目要求
Find all possible combinations of k numbers that add up to a number n, given that only numbers from 1 to 9 can be used and each combination should be a unique set of numbers. Example 1: Input: k = 3, n = 7 Output: [[1,2,4]] Example 2: Input: k = 3, n = 9 Output: [[1,2,6], [1,3,5], [2,3,4]]
輸入k和n,找到所有k個不同數字的組合,這些組合中數字的和為n
參考Combination Sum I ,Combination Sum II
解答這是一道典型的backtracking的題目,通過遞歸的方式記錄嘗試的節點,如果成功則加入結果集,如果失敗則返回上一個嘗試的節點進行下一種嘗試。
public List> combinationSum3(int k, int n) { List
> result = new ArrayList
>(); combinationSum3(k,n,1,result, new ArrayList
()); return result; } public void combinationSum3(int k, int n, int startNumber, List > result, List
current){ if(k==0 && n==0){ result.add(new ArrayList (current)); return;} if(k==0 || n<0) return; for(int i = startNumber ; i<=9 ; i++){ if(i>n){ break; } current.add(i); combinationSum3(k-1, n-i, i+1, result, current); current.remove(current.size()-1); } }
想要了解更多開發技術,面試教程以及互聯網公司內推,歡迎關注我的微信公眾號!將會不定期的發放福利哦~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67448.html
找出string里的單詞。 186. Reverse Words in a String II, 434. Number of Segments in a String combination類型題 77. Combinations 39. Combination Sum 40. Combination Sum II 216. Combination Sum III 494. Target S...
摘要:此時,若也正好減小為,說明當前集合是正解,加入數組。兩個無法得到正解的情況是在為,而不為時,當然已經無法得到正解,。在不為而卻已經小于等于的情況下,此時仍要加入其它數以令為,而要加入的數都是到的正整數,所以已無法滿足令為的條件,。 Combination Sum I & II: link Combination Sum III Problem Find all possible com...
摘要:和唯一的不同是組合中不能存在重復的元素,因此,在遞歸時將初始位即可。 Combination Sum I Problem Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T...
摘要:深度優先搜索復雜度時間空間遞歸棧空間思路因為我們可以任意組合任意多個數,看其和是否是目標數,而且還要返回所有可能的組合,所以我們必須遍歷所有可能性才能求解。這題是非常基本且典型的深度優先搜索并返回路徑的題。本質上是有限深度優先搜索。 Combination Sum I Given a set of candidate numbers (C) and a target number (...
摘要:參考思路和非常類似,只是這里需要增加進行重復處理的部分。題目要求題目中新添的要求包括數組中存在重復值,而且數組中每個值只可以使用一次。需要注意的是,既然數組中存在重復的值,就要注意可能會將重復的情況加入結果數組。 參考 思路和leetcode39 combination sum 非常類似,只是這里需要增加進行重復處理的部分。請參考我對leetcode39進行解答的這篇博客。 題目要求 ...
閱讀 890·2021-10-25 09:44
閱讀 1262·2021-09-23 11:56
閱讀 1184·2021-09-10 10:50
閱讀 3131·2019-08-30 15:53
閱讀 2134·2019-08-30 13:17
閱讀 617·2019-08-29 18:43
閱讀 2491·2019-08-29 12:57
閱讀 855·2019-08-26 12:20