当前位置: 首页 > article >正文

力扣:77. 组合

 回溯解法思路:

1.先定义一个接收全部组合的集合,在定义一个单个组合的集合,再写一个回溯方法来进行回溯,

回溯终止条件,把单个集合中的组合加入到大集合去,同时选择下一个值进行递归组合,递归到达到组合的个数时,回溯,删除处理的点进行下一个点的组合。

class Solution {
    //返回全部数字组合的接收集合
    List<List<Integer>> li1=new ArrayList<>();
    //数字组合的集合
    List<Integer> li2=new ArrayList<>();
    public List<List<Integer>> combine(int n, int k) {
      //回溯函数
       huisu(n,k,1);
       return li1;
    }
    //定义的回溯函数
    public void huisu(int n,int k,int startIndex){
        //组合的终止条件
        if(li2.size()==k){
            li1.add(new ArrayList<>(li2));
            return ;
        }
  //进行组合的for循环
        for(int i=startIndex;i<=n;i++){
          li2.add(i);
          //递归k-1次来生成组合元素。
          huisu(n,k,i+1);
          li2.removeLast();
        }
    }
}


http://www.kler.cn/a/227604.html

相关文章:

  • 【如何快速上手Vue.js框架——详细介绍】
  • MySQL-----DML基础操作
  • react 使用react-seamless-scroll实现无缝滚动
  • python爬虫6—高性能异步爬虫
  • Netflix Mac(奈飞mac客户端) v2.13.0激活版
  • 软件测试Bug系列之4个基本步骤(一)
  • 服务器常遇的响应状态码
  • 人类的本性,逃不开党同伐异
  • [全网独创】2024美赛F题成品参考论文56页word(附带配套代码数据集)
  • 红黑树,以及其在C++的set、map等数据结构中应用
  • Python Django
  • 【数位dp】【动态规划】【KMP】1397. 找到所有好字符串
  • 11月最新版付费进群源码自动定位+开源
  • 深度学习有何新进展?
  • MySQL数据库①_MySQL入门(概念+使用)
  • Opencv(C++)学习 TBB与OPENMP的加速效果实验与ARM上的实践(二)
  • 软件工程知识梳理4-详细设计
  • vue中使用html2canvas配合jspdf导出pdf(以及在导出时遇到的导出样式问题)
  • 如何使用wireshark解析二进制文件
  • 音箱、功放播放HDMI音频解决方案之HDMI音频分离器HHA