給出一組候選數字(c)和目標數字(t),找到c中所有的組合,使找出的數字和為t。c中的數字可以無限制重複被選取。
例如,給出候選陣列[2,3,6,7]和目標數字7,所求的解為:
[7],[2,2,3]
注意事項
所有的數字(包括目標數字)均為正整數。
元素組合(a1, a2, … , ak)必須是非降序(ie, a1 ≤ a2 ≤ … ≤ ak)。
解集不能包含重複的組合。
樣例 給出候選陣列[2,3,6,7]和目標數字7
返回 [[7],[2,2,3]]
這裡用到了自己寫的兩個小函式,乙個是getsum()求arraylist和,乙個是判斷是否是公升序isup()
//主,主要是為給遞迴的副函式提供形參
static
public list> combinationsum(int candidates, int target)
//副static list>subsum( arraylisttemp,list>ret ,int candidates,int target)
else
}return ret;
}//求和小函式
static
int getsum(arraylisttemp)
//判斷公升序小函式
static boolean isup(arraylisttemp)
lintcode 135 數字組合
給出一組候選數字 c 和目標數字 t 找到c中所有的組合,使找出的數字和為t。c中的數字可以無限制重複被選取。例如,給出候選陣列 2,3,6,7 和目標數字7,所求的解為 7 2,2,3 注意事項 所有的數字 包括目標數字 均為正整數。元素組合 a1,a2,ak 必須是非降序 ie,a1 a2 ak...
兩次過 Lintcode 135 數字組合
給出乙個候選數字的set c 和目標數字 t 找到c中所有的組合,使找出的數字和為t。c中的數字可以無限制重複被選取。給出候選set 2,3,6,7 和目標數字7 返回 7 2,2,3 經典的組合問題 需要注意的是 需要去重,因為題目要求unique combinations 需要提前排序,因為題目...
LintCode 數字組合
給出一組候選數字 c 和目標數字 t 找到c中所有的組合,使找出的數字和為t。c中的數字可以無限制重複被選取。例如,給出候選陣列 2,3,6,7 和目標數字7,所求的解為 7 2,2,3 您在真實的面試中是否遇到過這個題?yes 樣例給出候選陣列 2,3,6,7 和目標數字7 返回 7 2,2,3 ...