摘要:在這道題中,我結合了遞歸的思想來。就是將當前的值作為一個潛在的結果值加入一個結果數組將數組作為當前結果傳入下一輪遞歸。
題目要求
Given a set of candidate numbers (C) (without duplicates) and a target number (T), find all unique combinations in C where the candidate numbers sums to T. The same repeated number may be chosen from C unlimited number of times. Note: All numbers (including target) will be positive integers. The solution set must not contain duplicate combinations. For example, given candidate set [2, 3, 6, 7] and target 7, A solution set is: [ [7], [2, 2, 3] ]
一個整數數組,數組中的值不重復,要求在數組中找到所有的子數組,子數組滿足元素的和為目標值的條件
思路和代碼這道題目有一個標簽是backtracking,即在前一種條件的情況下計算當前條件產生的結果值。在這道題中,我結合了遞歸的思想來。就是將當前的值作為一個潛在的結果值加入一個結果數組將數組作為當前結果傳入下一輪遞歸。
public class CombinationSum_39 { List> result = new ArrayList
>(); public List
> combinationSum(int[] candidates, int target) { Arrays.sort(candidates); for(int i = 0 ; i
temp = new ArrayList (); temp.add(candidates[i]); combinationSum(candidates, i, target-candidates[i], temp); } } return result; } public void combinationSum(int[] candidates, int start, int target, List currentResult){ for(int i = start ; i < candidates.length ; i++){ if(candidates[i] == target){ currentResult.add(candidates[i]); result.add(currentResult); return; } if(candidates[i] > target){ return; } if(candidates[i] < target){ List temp = new ArrayList (); temp.addAll(currentResult); temp.add(candidates[i]); combinationSum(candidates, i, target-candidates[i], temp); } } } }
想要了解更多開發技術,面試教程以及互聯網公司內推,歡迎關注我的微信公眾號!將會不定期的發放福利哦~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/70006.html
摘要:分為每次從里邊循環所有數,已有值減去所有數,新值作為已有值,繼續處理。遇到返回保存,負數去掉 39. Combination SumDescriptionHintsSubmissionsDiscussSolutionGiven a set of candidate numbers (C) (without duplicates) and a target number (T),find...
摘要:參考思路和非常類似,只是這里需要增加進行重復處理的部分。題目要求題目中新添的要求包括數組中存在重復值,而且數組中每個值只可以使用一次。需要注意的是,既然數組中存在重復的值,就要注意可能會將重復的情況加入結果數組。 參考 思路和leetcode39 combination sum 非常類似,只是這里需要增加進行重復處理的部分。請參考我對leetcode39進行解答的這篇博客。 題目要求 ...
摘要:輸入輸出分析題目由于我們需要找到多個組合,簡單的使用循環肯定是不行的,這時候我們可以使用回溯算法來解決這個問題。用回溯算法解決問題的一般步驟針對所給問題,定義問題的解空間,它至少包含問題的一個最優解。 題目描述 Given a set of candidate numbers (candidates) (without duplicates) and a target number ...
摘要:要求中的每一個元素在一個組合中只能被使用一次。輸入候選數字集和目標數字結果集應當是想法首先這道題和題非常的相像。因此和題的解法相比,我們需要進行一次對于重復元素跳過的操作。 題目詳情 Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in C...
找出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...
閱讀 2629·2021-10-08 10:04
閱讀 2743·2021-09-06 15:02
閱讀 822·2019-08-30 13:50
閱讀 1555·2019-08-30 13:21
閱讀 2594·2019-08-30 11:15
閱讀 2120·2019-08-29 17:19
閱讀 1585·2019-08-26 13:55
閱讀 1265·2019-08-26 10:15