其他分享
首页 > 其他分享> > 2021.11.25 - SX08-07.组合总和

2021.11.25 - SX08-07.组合总和

作者:互联网

文章目录

1. 题目

在这里插入图片描述

2. 思路

(1) 回溯法

3. 代码

import java.util.*;

public class Test {
    public static void main(String[] args) {
    }
}

class Solution {
    private List<List<Integer>> res;
    private LinkedList<Integer> stack;
    private int[] candidates;
    private int target;

    public List<List<Integer>> combinationSum(int[] candidates, int target) {
        res = new ArrayList<>();
        stack = new LinkedList<>();
        this.candidates = candidates;
        this.target = target;
        Arrays.sort(candidates);
        backtrack(0, 0);
        return res;
    }

    private void backtrack(int index, int sum) {
        if (sum == target) {
            res.add(new ArrayList<>(stack));
            return;
        }
        for (int i = index; i < candidates.length; i++) {
            int next = sum + candidates[i];
            if (next > target) {
                return;
            }
            stack.addLast(candidates[i]);
            backtrack(i, next);
            stack.removeLast();
        }
    }
}

标签:25,2021.11,target,int,res,private,candidates,stack,SX08
来源: https://blog.csdn.net/qq_44021223/article/details/121544256