給出乙個候選數字的set(c)和目標數字(t),找到c中所有的組合,使找出的數字和為t。c中的數字可以無限制重複被選取。
給出候選set[2,3,6,7]和目標數字7
返回[[7],[2,2,3]]
經典的組合問題:
需要注意的是:
需要去重,因為題目要求unique combinations
需要提前排序,因為題目要求結果輸出ascending order
注意遞迴的出口
每個數字可以重複用,所以startindex傳入下一層遞迴時不加1
public class solution
private void dfs(int candidates, int target, listlist, list> res, int index)
for(int i = index; i < candidates.length; i++)
}}
兩次過 Lintcode 56 兩數之和
給乙個整數陣列,找到兩個數使得他們的和等於乙個給定的數 target。你需要實現的函式twosum需要返回這兩個數的下標,並且第乙個下標小於第二個下標。注意這裡下標的範圍是 0 到 n 1。example1 給出 numbers 2,7,11,15 target 9,返回 0,1 example2 ...
兩次過 Lintcode 976 4數和 II
給出 a,b,c,d 四個整數列表,計算有多少的tuple i,j,k,l 滿足a i b j c k d l 為 0。為了簡化問題,a,b,c,d 具有相同的長度,且長度n滿足 0 n 500。所有的整數都在範圍 2 28,2 28 1 內以及保證結果最多為2 31 1。例1 輸入 a 1,2 b...
兩次過 Lintcode 243 相親數
一對整數是相親數是說他們各自的所有有效因子 除了自己以外的因子 之和等於另外乙個數。比如 220,284 就是一對相親數。因為 給出整數k,求1 k之間的所有相親數對。給出300,返回 220,284 對於返回的每對相親數,要求數對中第乙個數小於第二個。注意兩點 1 求取每個數字的因子時,注意要成對...