对力扣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个小时学习了,我想对自己说一句:再接再厉!!未来可期!
相关文章:
对力扣77组合优化的剪枝操作的理解
77. 组合 代码随想录放出了这一张图 我乍一看觉得想当然,但是仔细想想,又不知道以下剪枝代码作何解释,因此我想通过这篇文章简要解释一下 class Solution { private:vector<vector<int>> result;vector<int> path;void backtracking(int n, int k, int sta…...
SpringMVC中的Handler、HandlerMapping、HandlerAdapter
SpringMVC中的Handler、HandlerMapping、HandlerAdapter到底是啥 这东西,虽然说和我们的开发没啥关系,尤其是当你用SpringBoot进行开发时,这些接口离你越来越远了。讲实话,要不是这学期扫一眼学校的课件,我都不知道有这东西,这东西本来就是对使用框架进行开发的开发者隐藏…...
tomcat 8在idea启动控制台乱码
Tomcat 8在IntelliJ IDEA(简称IDEA)启动控制台出现乱码的问题,通常是由于Tomcat的默认编码格式(UTF-8)与IDEA或操作系统的默认编码格式(如GBK)不一致所导致的。以下是一些解决此问题的步骤&…...
windows下kafka初体验简易demo
这里提供了windows下的java1.8和kafka3.9.0版本汇总,可直接免费下载 【免费】java1.8kafka2.13版本汇总资源-CSDN文库 解压后可以得到一个文件夹 资料汇总内有一个kafka文件资料包.tgz,解压后可得到下述文件夹kafka_2.13-3.9.0,资料汇总内还…...
证明直纹极小曲面是平面或者正螺旋面.
目录 证明直纹极小曲面是平面或者正螺旋面 证明直纹极小曲面是平面或者正螺旋面 证明:设极小直纹面 S S S的参数表示为 r ( u , v ) a ( u ) v c ( u ) . (u,v)\mathbf{a}(u)v\mathbf{c}(u). (u,v)a(u)vc(u).则 r u a ′ v c ′ , r v c , r u ∧ r v a ′ ∧…...
matlab2024a安装
1.开始安装 2.点击安装 3.选择安装密钥 4.接受条款 5.安装密钥 21471-07182-41807-00726-32378-34241-61866-60308-44209-03650-51035-48216-24734-36781-57695-35731-64525-44540-57877-31100-06573-50736-60034-42697-39512-63953 6 7.选择许可证文件 8.找许可证文件 9.选…...
Observability:如何在 Kubernetes pod 中轻松添加应用程序监控
作者:来自 Elastic Jack Shirazi•Sylvain Juge•Alexander Wert Elastic APM K8s Attacher 允许将 Elastic APM 应用程序代理(例如 Elastic APM Java 代理)自动安装到 Kubernetes 集群中运行的应用程序中。该机制使用变异 webhook࿰…...
关于Nginx前后端分离部署spring boot和vue工程以及反向代理的配置说明
最近项目中用到关于Nginx前后端分离部署spring boot和vue工程以及反向代理的配置,总结了一下说明: 1、后端是spring boot工程,端口8000,通过 jar命令启动 nohup java -jar xxx-jsonflow-biz.jar > /usr/local/nohup.out 2>…...
redis渐进式遍历
文章目录 一. 渐进式遍历介绍二. scan命令 一. 渐进式遍历介绍 keys * , 一次性把整个redis中所有的key都获取到, 这个操作比较危险, 可能会阻塞redis服务器 通过渐进式遍历, 就可以做到, 既能够获取到所有的key, 又不会卡死服务器 渐进式遍历, 不是一个命令把所有key都拿到,…...
【C++】数据类型与操作实践:详细解析与优化
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目一:三个数的倒序输出1.1 题目描述与代码实现代码实现: 1.2 代码解析与细节说明1.3 使用 int 类型的合理性分析1.4 其他数据类型的考虑1.5 代码优…...
C# 集合(Collection)
文章目录 前言一、动态数组(ArrayList)二、哈希表(Hashtable)三、排序列表(SortedList)四、堆栈(Stack)五、队列(Queue)六、点阵列(BitArray&…...
【智能控制】实验,基于MATLAB的模糊推理系统设计,模糊控制系统设计
关注作者了解更多 我的其他CSDN专栏 过程控制系统 工程测试技术 虚拟仪器技术 可编程控制器 工业现场总线 数字图像处理 智能控制 传感器技术 嵌入式系统 复变函数与积分变换 单片机原理 线性代数 大学物理 热工与工程流体力学 数字信号处理 光电融合集成电路…...
前端跳转路由的时候,清掉缓存
清除路由缓存的方法 使用 $router.push() 方法:在跳转路由时,可以通过传递一个包含 replace: true 属性的对象来实现清除路由缓存。例如: this.$router.push({ path: "/new-route", replace: true }); 使用 $router.replace…...
基于 LlamaFactory 的 LoRA 微调模型支持 vllm 批量推理的实现
背景 LlamaFactory 的 LoRA 微调功能非常便捷,微调后的模型,没有直接支持 vllm 推理,故导致推理速度不够快。 LlamaFactory 目前支持通过 VLLM API 进行部署,调用 API 时的响应速度,仍然没有vllm批量推理的速度快。 …...
【赵渝强老师】PostgreSQL的物理存储结构
PostgreSQL在执行initdb的数据库集群初始化时会指定一个目录。该目录通过环境变量$PGDATA来表示。当数据库集群初始化完成后,会在这个目录生成相关的子目录以及一些文件。这些生成的文件就是PostgreSQL的物理存储结构中的文件。如下图所示。 如上图所示,…...
智能探针技术:实现可视、可知、可诊的主动网络运维策略
网络维护的重要性 网络运维是确保网络系统稳定、高效、安全运行的关键活动。在当今这个高度依赖信息技术的时代,网络运维的重要性不仅体现在技术层面,更关乎到企业运营的方方面面。网络运维具有保障网络的稳定性、提升网络运维性能、降低企业运营成本等…...
CTF-PWN: 全保护下格式化字符串利用 [第一届“吾杯”网络安全技能大赛 如果能重来] 赛后学习(不会)
通过网盘分享的文件:如果能重来.zip 链接: https://pan.baidu.com/s/1XKIJx32nWVcSpKiWFQGpYA?pwd1111 提取码: 1111 --来自百度网盘超级会员v2的分享漏洞分析 格式化字符串漏洞,在printf(format); __int64 sub_13D7() {char format[56]; // [rsp10h] [rbp-40h]…...
debian 11 虚拟机环境搭建过坑记录
目录 安装过程系统配置修改 sudoers 文件网络配置换源安装桌面mount nfs 挂载安装复制功能tab 无法补全其他安装 软件配置eclipse 配置git 配置老虚拟机硬盘挂载 参考 原来去 debian 官网下载了一个最新的 debian 12,安装后出现包依赖问题,搞了半天&…...
MYSQL 什么是内连接 外连接 左连接 右连接?及适用场景
在 SQL 中,连接(JOIN)是用于组合来自两个或更多表的行的一种方法。根据连接的方式不同,可以分为几种类型的连接:内连接(INNER JOIN)、外连接(OUTER JOIN)、左连接&#x…...
利用Ubuntu批量下载modis图像(New)
由于最近modis原来批量下载的代码不再直接给出,因此,再次梳理如何利用Ubuntu下载modis数据。 之前的下载代码为十分长,现在只给出一部分,需要自己再补充另一部分。之前的为: 感谢郭师兄的指导(https://blo…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...
