题解 | #加起来和为目标值的组合(二)#

加起来和为目标值的组合(二)

https://www.nowcoder.com/practice/75e6cd5b85ab41c6a7c43359a74e869a

import java.util.*;
public class Solution {
    private  ArrayList<ArrayList<Integer>> res = new ArrayList<>();

    public ArrayList<ArrayList<Integer>> combinationSum2(int[] num, int target) {
        if (num == null || num.length < 1) {
            return res;
        }
        Arrays.sort(num);
        backtrack(num, 0, target, new ArrayList<>());
        return res;
    }

    private void backtrack(int[] num, int start, int target, List<Integer> list) {
        if (list.size() > 0 && target == 0) {
            res.add(new ArrayList<>(list));
            return;
        }
        for (int i = start; i < num.length; i++) {
            if (target - num[i] < 0) {
                break;
            }
            if (i > start && num[i] == num[i - 1]) {
                continue;
            }
            target -= num[i];
            list.add(num[i]);
            backtrack(num, i + 1, target, list);
            target += num[i];
            list.remove(list.size() - 1);
        }
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 14:23
steelhead:你回的有问题,让人感觉你就是来学习的
点赞 评论 收藏
分享
07-03 11:02
中山大学 C++
字节刚oc,但距离九月秋招很近了有两段互联网实习,非腾讯字节。不敢赌转正,现在在纠结去还是不去如果实习俩月离职会有什么后果吗
阿城我会做到的:不去后悔一辈子,能否转正取决于ld的态度,只要他不卡,答辩就是走流程,个人觉得可以冲一把
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务