package offer;import java.util.LinkedList;
import java.util.List;public class 允许重复选择元素的组合 {public static void main(String[] args) {int [] nums = {2,3,6,7};System.out.println(combinationSum(nums,7));}public static List<List<Integer>> combinationSum(int[] candidates, int target) {List<List<Integer>> result = new LinkedList<>();LinkedList<Integer> con = new LinkedList<>();helper(candidates,target,0,con,result);return result;}private static void helper(int[] candidates,int target,int i,LinkedList<Integer> con,List<List<Integer>> result){if(target==0){result.add(new LinkedList<>(con));}else if(target>0&&i<candidates.length){helper(candidates,target,i+1,con,result);con.add(candidates[i]);helper(candidates,target-candidates[i],i,con,result);con.removeLast();}}
}

因为允许重复选择,所以当选择过后 i不用加一

回溯算法 允许重复选择元素的组合相关推荐

  1. 【秋招机试真题】荣耀机试0916-3-可重复选元素组合问题

    /* *   题目描述: *       dota游戏里面,召唤师可以控制冰雷火三种元素,并通过元素组合 *   产生新的技能.现在我们修改了一张新的地图,地图中他能够控制n种元素, *   并且将m ...

  2. Leetcode回溯算法经典题目总结

    回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就 "回溯" 返回,尝试别的路径.回溯法是一种选优搜索法,按选优条件向前搜索 ...

  3. 「leetcode」最强回溯算法总结篇!历时21天、画了20张树形结构图、14道精选回溯题目精讲

    本文 https://github.com/youngyangyang04/leetcode-master 已经收录,里面还有leetcode刷题攻略.各个类型经典题目刷题顺序.思维导图,可以fork ...

  4. 代码随想录——回溯算法

    目录 一.回溯法理论基础 二.组合问题 三.子集问题 四.分割问题 五.排列问题 六.行程问题 七.棋盘问题 一.回溯法理论基础 回溯是递归的副产品,只要有递归就会有回溯,所以回溯法也经常和二叉树遍历 ...

  5. 【回溯算法】【打卡第179道】:leetCode :39. 组合总和(数组中的元素可以重复使用)

    1.题目描述 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有不同组合 ,并以列表形式 ...

  6. 【亡羊补牢】挑战数据结构与算法 第18期 LeetCode 面试题 08.08. 有重复字符串的排列组合(递归与回溯)

    仰望星空的人,不应该被嘲笑 题目描述 有重复字符串的排列组合.编写一种方法,计算某字符串的所有排列组合. 示例1: 输入:S = "qqe"输出:["eqq", ...

  7. 求n个数中第k大的数_互联网高频面试题目:「回溯算法」求组合总和

    我将算法学习相关的资料已经整理到了Github :https://github.com/youngyangyang04/leetcode-master,里面还有leetcode刷题攻略.各个类型经典题 ...

  8. 回溯算法团灭子集、排列、组合问题

    回溯算法团灭子集.排列.组合问题 一.子集 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] ...

  9. 算法训练Day24 | 回溯算法理论基础;LeetCode77.组合(经典的回溯问题)

    目录 回溯算法理论基础 1. 什么是回溯法 2. 回溯法的效率 3. 回溯法解决的问题 4. 如何理解回溯法 5. 回溯法模板-- 回溯三部曲 6. 总结 LeetCode77.组合 1. 思路 2. ...

最新文章

  1. wireshark 配 filddler 手机抓包
  2. sql已经完成,生成表
  3. Centos 7 KVM安装win10
  4. MATLAB 在图像处理和机器视觉的应用举例01 - 官网培训视频笔记(上)-- 图像分割和图像配准
  5. eureka注册中心搭建与使用
  6. gitlab ci 自动化部署_lt;为什么准备使用GitLab做CICD流水线?/gt;
  7. 怎么在计算机修复flash,win10系统怎么用flash修复器?教你用flash修复器修复视频的方法...
  8. python 操作excel神器_【转】多图+代码 | 详解Python操作Excel神器openpyxl的各种操作!...
  9. python 网络请求类库 requests 使用
  10. SpringMVC接收json数据转对象中的一些问题(415错误的解决)
  11. docker使用_Docker的基本使用
  12. vs 中程序被锁定的问题
  13. 服务器怎么设置虚拟网卡,VMWare虚拟网卡配置
  14. 临时邮箱获取验证信息
  15. MD5(JavaScript)
  16. win10 企业版LTSC 激活方式
  17. 人到中年想学一门手艺自己创业好不好
  18. 申请谷歌地图API介绍
  19. php语音机器人,php运营版语音机器人接单源代码带完美教程
  20. 困牛放牧(Sleepy Cow Herding)

热门文章

  1. 解决百度网盘限速超简单
  2. PMP项目管理师考试---准备与学习过程经验分享
  3. useCapture
  4. 火车头采集细节(一)
  5. 2023电工杯数学建模A题B题思路模型
  6. BlockingQueue(阻塞队列)详解
  7. C++ accumulate()函数
  8. 【源码】二维平面应力问题中的弹性材料模型仿真
  9. tomcat官网如何下载低版本的tomcat
  10. 说说em/px/rem/vh/vw的区别