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

代码随想录算法训练营第二十四天| 77 组合

目录

77 组合

暴力 

减枝优化


77 组合

暴力 

class Solution {List<List<Integer>>res = new ArrayList<>();LinkedList<Integer>newList = new LinkedList<>();public List<List<Integer>> combine(int n, int k) {dfs(n,k,1);return res;}private void dfs(int n,int k,int num){if(newList.size() == k){res.add(new ArrayList<>(newList));return;}for(int i = num;i <= n;i++){newList.add(i);dfs(n,k,i + 1);newList.removeLast();}}
}

减枝优化

在遍历过程中,如果n = 4,k = 4,那么答案只有[1,2,3,4]一种,如果第一次for循环开始从2开始,那么剩下的遍历是没有意义的,我们可以据此进行减枝优化。

class Solution {List<List<Integer>>res = new ArrayList<>();LinkedList<Integer>newList = new LinkedList<>();public List<List<Integer>> combine(int n, int k) {dfs(n,k,1);return res;}private void dfs(int n,int k,int num){if(newList.size() == k){res.add(new ArrayList<>(newList));return;}for(int i = num;i <= n - (k - newList.size()) + 1;i++){//减枝操作newList.add(i);dfs(n,k,i + 1);newList.removeLast();}}
}

http://www.lryc.cn/news/232541.html

相关文章:

  • el-dialog element-ui弹窗
  • 计算机网络的发展
  • 官宣!Wayland正式支持基于IntelliJ的IDE
  • 大模型在数据分析场景下的能力评测|进阶篇
  • 服务注册发现 springcloud netflix eureka
  • Spring cloud负载均衡@LoadBalanced LoadBalancerClient
  • 6.运行mysql容器-理解容器数据卷
  • golang学习笔记——查找质数
  • C++ 基础二
  • 鼎盛合 | 宠物智能投食机方案设计开发
  • ERR_PNPM_INVALID_WORKSPACE_CONFIGURATION packages field missing or empty
  • ubuntu 23.04从源码编译安装rocm运行tensorflow-rocm
  • echarts 图表文字大小自适应 字体大小自适应
  • 【项目】云备份系统基础功能实现
  • 【Shell脚本13】Shell 文件包含
  • 2023.11.15 关于 Spring Boot 配置文件
  • 2023年第九届数维杯国际大学生数学建模挑战赛A题
  • IDEA写mybatis程序,java.io.IOException:Could not find resource mybatis-config.xml
  • 1软件管理
  • flutter 绘制右上角圆角三角形标签
  • C/C++输出整数部分 2021年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
  • 通过20天预测7天
  • 【python】均值、中值和高斯滤波详解和示例
  • 基于STM32的循迹小车项目实战
  • Element UI 偶发性图标乱码问题
  • UniApp中的数据存储与获取指南
  • VUE基础的一些实战总结
  • 【算法】算法题-20231117
  • 轮播图(多个一起轮播)
  • OpenCV中的像素重映射原理及实战分析