给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次

给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 target)都是正整数。 解集不能包含重复的组合。 示例 1: 输入: candidates = [2,3,6,7], target = 7, 所求解集为: [ ... 阅读详情
package program;


import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Stack;

/**
 * @Auther: 大哥的叔
 * @Date: 2019/9/28 15:05
 * @Description:刚开始想的是用整数划分将所有结果存储然后再和原数组匹配但是后面的思路没了
 * 然后就看人家用回溯解似乎也行
 */
public class Shuzizuhe {
    //首先是创建一list的全局变量作为返回值
    List<List<Integer>> lists = new ArrayList<>();
    private int []candidates;
    private int len;
    public List<List<Integer>> combinationSum(int[] candidates, int target) {
        //判断是否符合组合数组的要求不符合直接返回
        int len = candidates.length;
        if (candidates == null||len==0||target<0){
            return lists;
        }
        //对要用的数组排序可以简单降低复杂度
        Arrays.sort(candidates);
      this.len =len;
      this.candidates =candidates;
      findshuzuzuhe(target,0,new Stack<>());
        return lists;
    }

    /**
     *
     * @param target 要形成组合的数
     * @param start 开始判断的位置
     * @param p 存放值
     */
    private void  findshuzuzuhe(int target, int start, Stack<Integer> p){
        if(target == 0){
            //将值存入
            lists.add(new ArrayList<>(p));

            return;
        }

        for (int i = start; i <len && target-candidates[i]>=0 ; i++) {
            if (i>start&&candidates[i]==candidates[i-1])continue;//去重的时候是现在的值和之前的值进行匹配
            p.add(candidates[i]);

            findshuzuzuhe(target-candidates[i],i+1,p);

            p.pop();

        }
    }

    public static void main(String[] args) {
        int[] candidates = {10,1,2,7,6,1,5};
        int target = 8;
       Shuzizuhe shuzizuhe = new Shuzizuhe();
        List<List<Integer>> combinationSum = shuzizuhe.combinationSum(candidates, target);
        System.out.println(combinationSum);
    }
}

 

扩视机器视觉—Halcon机器视觉48个实战项目六(检测定位角度) 此项目halcon检测检测定位角度问题,并显示。 阅读详情

相关推荐

解密TMS320F28377D双核工程中的内存分配艺术:从CMD文件到实战优化

本文深入解析TMS320F28377D双核DSP的内存管理艺术,从CMD文件配置到实战优化技巧。详细介绍了SARAM、GSRAM等内存类型的特性与配置方法,提供双核协同、性能优化及高级调试的实用方案,帮助开发者提升系统实时性和稳定性。

weixin_29190651的博客 663

leetcode 39 : 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。

import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * 题目: * 组合总和 -- leetcode 39 * <p> * 题目描述: * <p> * 给定一个无重复元素的数组 candidates 和一个目标数 target , * 找出 can...

火星男孩的分享空间 2249

Matlab Robotics Toolbox实战:四自由度机械臂建模与仿真全流程(附代码)

本文详细介绍了使用Matlab Robotics Toolbox进行四自由度机械臂建模与仿真的全流程,包括DH参数定义、模型构建、可视化、运动学仿真及交互控制。通过实战案例和代码示例,帮助读者快速掌握机械臂建模技巧,提升机器人学习效率。

weixin_42538752的博客 415

leetcode系列--39.组合总和

leetcode系列–第39题.组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。 对于给定的输入,保证和为 target 的不同组合数少于 150 个。 输入:candidates = [2,3,6,

weixin_41198447的博客 346

如何使用obspy下载地震波形数据

如果你是地震研究学者,或者需要进行地震方面的研究,那么地震数据下载是一个必不可少的流程,本文将告诉你如何使用obspy下载想要的地震数据

monsterk1的博客 2078

Wordpress实战之第二章安装wordpress 软件需要的软件

使用下载并安装phpstudy面版工具 wget -O install.sh?https://notdocker.xp.cn/install.sh?&& sudo bash install.sh 2.安装成功如下 ==============运行状态========================= webpanel stop phpstudy running =================...

安全参透之旅 612

leetcode 40. 组合总和 II

给定一个数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。 candidates中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例1: 输入: candidates =[10,1,2,7,6,1,5], target =8, 所求解集为:...

ludan_xia的博客 188

Springer期刊LaTeX模板中参考文献格式选择与编译错误的快速修复指南

本文针对Springer期刊LaTeX模板中参考文献编译后显示问号的常见问题,提供了快速修复指南。核心在于正确选择并配置与期刊匹配的参考文献格式文件(.bst),并执行标准的四步编译流程。文章详细解释了问题根源,并给出了从查找正确.bst文件到修改代码、执行编译的完整解决方案,帮助作者高效解决投稿中的技术障碍。

weixin_29266007的博客 402

LeetCode 中级 - 组合总和II(105)

给定一个数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。 candidates中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例1: 输入: candidates =[10,1,2,7,6,1,5], target =8, ...

weixin_30794851的博客 147

3.6KW储能双向逆变器(原理图PCB源码)

通过百度网盘分享的文件:优快云 3.6KW储能双向逆变器 链接:https://pan.baidu.com/s/18NN6KnpywFUIDtAQ4b1LTg?pwd=csdn 提取码:csdn

2401_86562087的博客 2185

YOLO11改进 | 卷积模块 | 轻量化GSConv替换普通的conv

yolo11,GSConv,卷积模块

kay_545 3958

Leetcode第四十题:组合总和 II

题目: 给定一个数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。 candidates中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例1: 输入: candidates =[10,1,2,7,6,1,5], target =8, 所求解集为: [ [1, 7], [1, 2, 5], [2, 6], [1, 1, 6] ] 示...

HinataHazuki的博客 302

DDD系列 - 第6讲 仓库Repository - Mybatis篇

书接上回,之前通过一个关于拆解、微服务、面向对象的故事,向大家介绍了如何从微服务、面向对象一步步演进到DDD的,整个演进过程如下图:其中在领域层,我们定义了富血模型的领域模型,包括聚合、聚合根、实体、值对象等。聚合在代码层面中的表现形式即是一个包Package,起到了边界的作用,聚合内的对象间高内聚,而聚合间低耦合。聚合中放着实体、值对象、仓库等,实体相较于值对象的一个典型区别就是实体存在唯一标识,并且可通过该唯一标识查询到该实体并对其进行相关操作,值对象不存在唯一标识且通常作为实体。

罗小爬的技术宝书 1785

LeetCode40. 组合总和 II

组合总和 II 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例 1: 输入: candidates = [10,1,2,7,6,1,5], target = 8...

码农在途的博客 156

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

LeetCode | 0040. Combination Sum II组合总和 II【Python】

LeetCode 0040. Combination Sum II组合总和 II【Medium】【Python】【回溯】

Wonz 593

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

40. 组合总和 II

给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例 1: 输入: candidates = [10,1,2,7,6,1,5], target = 8, 所求解集为: [ [1, 7], [1, 2, 5], [2, 6], [1, 1, 6] ] 示例 2: 输入:

zjbzwhwhz的博客 215

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

ii 组合总和_40. 组合总和 II – 力扣(LeetCode)

题目描述给定一个数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例1:输入: candidates =[10,1,2,7,6,1,5], target =8,所求解集为:[[1, 7],...

weixin_39633452的博客 135

组合总和 II

问题描述: 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例 1: 输入: candidates = [10,1,2,7,6,1,5], target = 8, 所求解集为: [ [1, 7], [1, 2, 5], [2, 6], [1, 1, 6] ] 示例 2: 输入: can

ZhEnG_jIe_YuAn的博客 187

leetcode 40 组合总和 ||

题目描述 给定一个数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。 candidates中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例1: 输入: candidates =[10,1,2,7,6,1,5], target =8, 所求解集为: [ [1, 7], [1, 2, 5], [2, 6], [1, 1, 6] ] ...

zshluckydogs的博客 180

【Leetcode每日一题】2020-09-09 40 组合总和 II - 中等 (Python & C++)

来源:力扣 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 Given a collection of candidate numbers (candidates) and a target number (target), find all unique combinations i

weixin_46062098的博客 237

leetcode第四十题Java解法——组合总和2

给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例 1: 输入: candidates = [10,1,2,7,6,1,5], target = 8, 所求解集为: [ ...

落尘的博客 338

【LeetCode 40】组合总和 II

题目描述 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例 1: 输入: candidates = [10,1,2,7,6,1,5], target = 8, 所求解集为: [ [1, 7], [1, 2, 5], [2, 6], [1, 1, 6] ] 示例 2:

公众号:前端充电宝 470

LeetCode-40.组合总和II

题目 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例 1: 输入: candidates = [10,1,2,7,6,1,5], target = 8 所求解集为: [...

疯狂的兔子 400

leetcode_40.组合总和II

给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例 1: 输入: candidates = [10,1,2,7,6,1,5], target = 8, 所求解集为: [ [1...

qq_37292201的博客 107

LeetCode 40 Combination Sum II[数组总和 II]

题目 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例 1: 输入: candidates = [10,1,2,7,6,1,5], target = 8, 所求解集为: ...

u010829149的专栏 210

leetcode40.组合总和 II

题目: 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例: 示例 1: 输入: candidates = [10,1,2,7,6,1,5], target = 8, 所求...

qq_14962179的博客 227
上一篇: 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被
下一篇: 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组
大哥的叔
博客等级 码龄8年 72粉丝 295原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值