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

对力扣77组合优化的剪枝操作的理解

77. 组合

代码随想录放出了这一张图

我乍一看觉得想当然,但是仔细想想,又不知道以下剪枝代码作何解释,因此我想通过这篇文章简要解释一下

class Solution {
private:vector<vector<int>> result;vector<int> path;void backtracking(int n, int k, int startIndex) {if (path.size() == k) {result.push_back(path);return;}for (int i = startIndex; i <= n - (k - path.size()) + 1; i++) { // 剪枝的地方path.push_back(i); // 处理节点backtracking(n, k, i + 1);path.pop_back(); // 回溯,撤销处理的节点}}
public:vector<vector<int>> combine(int n, int k) {backtracking(n, k, 1);return result;}
};

for循环里的"i <= n - (k - path.size()) + 1;"就是令人疑惑的地方,我的解释如下:

i是当前取何值,该限制条件就是i在当前所能取的值,既然i能在这取值,我们必须要保证下面的递归嵌套里面的for循环也能取到值(即基于该栈的后面的递归嵌套只能在i之后取值,我们要保证在这之后到n之间有足够的值保证path.size() == k),也就是说当下取值 i 后,所剩下能取的值必须满足path.size() == k这个条件.

因此当下i的可取范围应是能满足后面所有递归都能取值的前提下所能取的范围

在取当下的i值前,path还差k - path.size()个值才能满足path.size() == k,因为在[1,n]取值,那么这最后k - path.size()个值就必须不能超过[n - (k - path.size()) + 1, n],即n的后k - path.size()个值,因为i当前取值超过n - (k - path.size()) + 1后,后面的递归总有i无法取到值.

碎碎念:

泡图书馆也600个小时了,感觉自己的学习效率也慢慢好起来了,也能坚持每天8-10个小时学习了,我想对自己说一句:再接再厉!!未来可期!

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

相关文章:

  • SpringMVC中的Handler、HandlerMapping、HandlerAdapter
  • tomcat 8在idea启动控制台乱码
  • windows下kafka初体验简易demo
  • 证明直纹极小曲面是平面或者正螺旋面.
  • matlab2024a安装
  • Observability:如何在 Kubernetes pod 中轻松添加应用程序监控
  • 关于Nginx前后端分离部署spring boot和vue工程以及反向代理的配置说明
  • redis渐进式遍历
  • 【C++】数据类型与操作实践:详细解析与优化
  • C# 集合(Collection)
  • 【智能控制】实验,基于MATLAB的模糊推理系统设计,模糊控制系统设计
  • 前端跳转路由的时候,清掉缓存
  • 基于 LlamaFactory 的 LoRA 微调模型支持 vllm 批量推理的实现
  • 【赵渝强老师】PostgreSQL的物理存储结构
  • 智能探针技术:实现可视、可知、可诊的主动网络运维策略
  • CTF-PWN: 全保护下格式化字符串利用 [第一届“吾杯”网络安全技能大赛 如果能重来] 赛后学习(不会)
  • debian 11 虚拟机环境搭建过坑记录
  • MYSQL 什么是内连接 外连接 左连接 右连接?及适用场景
  • 利用Ubuntu批量下载modis图像(New)
  • 【Springboot】@Autowired和@Resource的区别
  • UIE与ERNIE-Layout:智能视频问答任务初探
  • 数据结构:树
  • docker 怎么启动nginx
  • 【智商检测——DP】
  • YOLOv11改进,YOLOv11添加SAConv可切换空洞卷积,二次创新C3k2结构
  • 使用R语言优雅的获取任意区域的POI,道路,河流等数据
  • 【设计模式】工厂方法模式 在java中的应用
  • Pytest框架学习20--conftest.py
  • 【面试开放题】挫折、问题、擅长、应用技能
  • CTF-PWN: 全保护下格式化字符串利用 [第一届“吾杯”网络安全技能大赛 如果能重来] 赛后学习(没思路了)