T39 數(shù)組組合

給定一個無重復(fù)元素的數(shù)組 candidates 和一個目標(biāo)數(shù) target ,找出 candidates 中所有可以使數(shù)字和為 target 的組合。
candidates 中的數(shù)字可以無限制重復(fù)被選取。
說明:
所有數(shù)字(包括 target)都是正整數(shù)。
解集不能包含重復(fù)的組合。
示例 1:
輸入: candidates = [2,3,6,7], target = 7,
所求解集為:
[
[7],
[2,2,3]
]
示例 2:
輸入: candidates = [2,3,5], target = 8,
所求解集為:
[
[2,2,2,2],
[2,3,3],
[3,5]
]

典型的回溯算法,按照套路解題即可

public static List<List<Integer>> combinationSum(int[] candidates, int target) {
        List<List<Integer>> res = new ArrayList<List<Integer>>();
        Arrays.sort(candidates);
        backtrace(candidates,target,0,res,new ArrayList<Integer>());
        return res;
    }
    
    public static void backtrace(int[] candidates,int target,int i,List<List<Integer>>res,List<Integer> temp) {
        if(target<0)
            return ;
        if(0==target) {
            res.add(new ArrayList<>(temp));
            return;
        }
        for(int start =i;start<candidates.length;start++) {
            temp.add(candidates[start]);
//          target -=candidates[i];
            backtrace(candidates,target-candidates[start],start,res,temp);
            temp.remove(temp.size()-1);
        }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在這里,我們再復(fù)習(xí)一下 LeetCode 第 77 題。剪枝主要的出發(fā)點就在于,我們可以提前做好判斷,減少不必要的...
    李威威閱讀 645評論 0 0
  • 回溯法:我的理解:一條路走到底,走不通了再返回。 第 39 題排序是為了剪枝。 第 40 題排序是為了去掉重復(fù)。 ...
    李威威閱讀 363評論 0 0
  • 一、概念 參考文章回溯算法實際上一個類似枚舉的搜索嘗試過程,主要是在搜索嘗試過程中尋找問題的解,當(dāng)發(fā)現(xiàn)已不滿足求解...
    一只可愛的檸檬樹閱讀 1,143評論 0 1
  • 題目描述:給定一個數(shù)組candidates和一個目標(biāo)數(shù)target,找出candidates中所有可以使數(shù)字和為t...
    windUtterance閱讀 198評論 0 0
  • 截取整個屏幕保存在桌面:command + shift + 3截取整個屏幕保存在剪切板:command + shi...
    你缺少想象力閱讀 6,883評論 0 0

友情鏈接更多精彩內(nèi)容