博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leecode---39---数组,dfs,回溯法---求所有的组合为target,数字无重复
阅读量:6271 次
发布时间:2019-06-22

本文共 1033 字,大约阅读时间需要 3 分钟。

给了个数组和目标值,要找到几个数字和为目标值。
dfs的时候入参有:总结果,当前数字记录,当前数字总和,数组,数组下标,目标值。
如果当前总和超过target,退出dfs
如果当前总和==target,记录结果
 
 

 
 
题意
给一个数组和target,求全部组合,其中数字可以重复使用,数组中没有重复数字
 
分析
回溯法总结
 
 
 
代码
class Solution {
    public List<List<Integer>> combinationSum(int[] candidates, int target) {
        List<List<Integer>> result = new ArrayList<List<Integer>>();
        List<Integer> temp = new ArrayList<Integer>();
        if(candidates == null || candidates.length <= 0 || target < 0) return result;
        dfs(result,temp,candidates,0,0,target);
        return result;
    }
    
    public void dfs(List<List<Integer>> result,List<Integer> temp,int[] nums,int pos,int curSum,int target){
        //1.直接退出循环情况
        if (curSum > target) return;
        
        //2.结果情况
        if (curSum == target) {
            result.add(new ArrayList<Integer>(temp));
        }
        
        //3.普通情况---选择条件:因为数字可以重复使用且无重复,所以从pos到末尾都可以用
        //4.是否回溯---因为记录了路程,所以进行下一种选择的时候需要把上一种选择剔除掉。
        for (int i=pos; i < nums.length; i++) {
            temp.add(nums[i]);
            curSum+=nums[i];
            dfs(result,temp,nums,i,curSum,target);
            temp.remove(temp.size() - 1);
            curSum -= nums[i];
        }
    }
}

转载于:https://www.cnblogs.com/buptyuhanwen/p/8985585.html

你可能感兴趣的文章
JavaScript编码encode和decode escape和unescape
查看>>
ppp点对点协议
查看>>
html5游戏开发-简单tiger机
查看>>
Codeforces 712C Memory and De-Evolution
查看>>
编写的windows程序,崩溃时产生crash dump文件的办法
查看>>
Ural2110 : Remove or Maximize
查看>>
Django REST framework 的TokenAuth认证及外键Serializer基本实现
查看>>
《ArcGIS Runtime SDK for Android开发笔记》——问题集:如何解决ArcGIS Runtime SDK for Android中文标注无法显示的问题(转载)...
查看>>
Spring Boot日志管理
查看>>
动态注册HttpModule管道,实现global.asax功能
查看>>
使用 ES2015 编写 Gulp 构建
查看>>
[转]Using NLog for ASP.NET Core to write custom information to the database
查看>>
BZOJ 4766: 文艺计算姬 [矩阵树定理 快速乘]
查看>>
MySQL 的instr函数
查看>>
Hibernate的核心对象关系映射
查看>>
接口与抽象类的使用选择
查看>>
if __name__ == '__main__'
查看>>
CF 375D. Tree and Queries【莫队 | dsu on tree】
查看>>
Maven最佳实践 划分模块 配置多模块项目 pom modules
查看>>
Hadoop学习笔记——WordCount
查看>>