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

leetcode第77题组合

原题出于leetcode第77题https://leetcode.cn/problems/combinations/

1.树型结构

2.回溯三部曲

  1. 递归函数的参数和返回值

  2. 确定终止条件

  3. 单层递归逻辑

3.代码

二维数组result
一维数组path
void backtracking(n,k,startindex){if(path.size==k){result.append(path);return ;}for(i=startindex;i<=n;i++){path.push(i);backtracking(n,k,i+1);path.pop();    }return ;
}

4.剪枝算法(长度为k时的剪枝)

由于要求组合的长度为k,故若遍历到某个数时,其后面刚好有k-1个数,则这个数即为应当遍历的最后一个数。如下图树型结构所示:

可以在遍历时对i的范围进行调整,调整逻辑如下:

  • 首先,我们要知道当前选取了多少个元素,即path.size()

  • 其次,计算还需要选取多少个元素:k-path.size();

  • 假设此时取到的数为x,则还未取的数的范围是[x,n],故有:

n-x+1>=k-path.size()

解得:x<=n-(k-path.size)+1

所以i的取值到n-(k-path.size)+1即可,具体代码如下:

二维数组result
一维数组path
void backtracking(n,k,startindex){if(path.size==k){result.append(path);return ;}for(i=startindex;i<=n-(k-path.size)+1;i++){path.push(i);backtracking(n,k,i+1);path.pop();    }return ;
}

文章中有关树型结构的图片出自代码随想录,这是一个非常好的算法平台,强烈推荐学算法的同学看一看

相关文章:

leetcode第77题组合

原题出于leetcode第77题https://leetcode.cn/problems/combinations/ 1.树型结构 2.回溯三部曲 递归函数的参数和返回值 确定终止条件 单层递归逻辑 3.代码 二维数组result 一维数组path void backtracking(n,k,startindex){if(path.sizek){result.append(path);return ;}…...

Linux | Ubuntu 与 Windows 双系统安装 / 高频故障 / UEFI 安全引导禁用

注&#xff1a;本文为 “buntu 与 Windows 双系统及高频故障解决” 相关文章合辑。 英文引文&#xff0c;机翻未校。 How to install Ubuntu 20.04 and dual boot alongside Windows 10 如何将 Ubuntu 20.04 和双启动与 Windows 10 一起安装 Dave’s RoboShack Published in…...

Docker入门指南:Windows下docker配置镜像源加速下载

Windows下docker配置镜像源加速下载 docker的官方镜像是海外仓库&#xff0c;默认下载耗时较长&#xff0c;而且经常出现断站的现象&#xff0c;因此需要配置国内镜像源。 国内镜像源概述 国内现有如下镜像源可以使用 "http://hub-mirror.c.163.com", "http…...

web前端基础修炼手册

目录 引言 1. 安装插件 2. 前端三剑客 3. 开发者模式 第一章 HTML 1.文件结构 2. 常见标签 2.1 注释标签 2.2 标题标签 2.3 段落标签 2.4 换行标签 2.5 格式化标签 2.6 图片标签 2.7 超链接标签 2.8 表格标签 2.9 列表标签 2.10 form标签 2.11 input 标签 2.12 la…...

【无标题】Ubuntu22.04编译视觉十四讲slambook2 ch4时fmt库的报错

Ubuntu22.04编译视觉十四讲slambook2 ch4时fmt库的报错 cmake ..顺利&#xff0c;make后出现如下报错&#xff1a; in function std::make_unsigned<int>::type fmt::v8::detail::to_unsigned<int>(int): trajectoryError.cpp:(.text._ZN3fmt2v86detail11to_unsi…...

macos下myslq图形化工具之Sequel Ace

什么是Sequel Ace 官方github&#xff1a;https://github.com/Sequel-Ace/Sequel-Ace Sequel Ace 是一款快速、易于使用的 Mac 数据库管理应用程序&#xff0c;用于处理 MySQL 和 MariaDB 数据库。 Sequel Ace 是一款开源项目&#xff0c;采用 MIT 许可证。用户可以通过 Ope…...

【AHK】资源管理器自动化办公实例/自动连点设置

此处为一个自动连续点击打开检查的自动化操作案例&#xff0c;没有quicker的鼠键录制&#xff0c;不常用了&#xff0c;做个备份 #MaxThreadsPerHotkey 2 ; 这个是核心&#xff01;&#xff01;&#xff01;&#xff01;确保可以同时运行多个热键或标签global isRunning : tru…...

通用查询类接口数据更新的另类实现

文章目录 一、简要概述二、java工程实现1. 定义main方法2. 测试运行3. 源码放送 一、简要概述 我们在通用查询类接口开发的另类思路中&#xff0c;关于接口数据的更新&#xff0c;提出了两种方案&#xff1a; 文件监听 #mermaid-svg-oJQjD6jQ8T19XlHA {font-family:"tre…...

Linux ls 命令

Linux ls&#xff08;英文全拼&#xff1a; list directory contents&#xff09;命令用于显示指定工作目录下之内容&#xff08;列出目前工作目录所含的文件及子目录)。 语法 ls [-alrtAFR] [name...] 参数 : -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)-d 只列出目…...

【问题记录】Go项目Docker中的consul访问主机8080端口被拒绝

【问题记录】Go项目Docker中的consul访问主机8080端口被拒绝 问题展示解决办法 问题展示 在使用docker中的consul服务的时候&#xff0c;通过命令行注册相应的服务&#xff08;比如cloudwego项目的demo_proto以及user服务&#xff09;失败。 解决办法 经过分析&#xff0c;是…...

面试题:说一下你对DDD的了解?

面试题:说一下你对DDD的了解? 在面试中,关于 DDD(领域驱动设计,Domain-Driven Design) 的问题是一个常见的技术考察点。DDD 是一种软件设计方法论,旨在通过深入理解业务领域来构建复杂的软件系统。以下是一个清晰、详细的回答模板,帮助你在面试中脱颖而出: DDD 的定义…...

React低代码项目:问卷编辑器 I

问卷编辑器 Date: February 20, 2025 4:17 PM (GMT8) 目标 完成问卷编辑器的设计和开发完成复杂系统的 UI 组件拆分完成复杂系统的数据结构设计 内容 需求分析技术方案设计开发 注意事项&#xff1a; 需求指导设计&#xff0c;设计指导开发。前两步很重要页面复杂的话&…...

蓝桥杯2024年真题java B组 【H.拼十字】

蓝桥杯2024年真题java B组 【H.拼十字】 原题链接&#xff1a;拼十字 思路&#xff1a; 使用树状数组或线段树解决。 先将输入的信息存入到一个n行3列的数组中&#xff0c;将信息排序&#xff0c;按照长度小到大&#xff0c;长相同时&#xff0c;宽度小到大 排序。 建立三个…...

Spring MVC 程序开发(1)

目录 1、什么是 SpringMVC2、返回数据2.1、返回 JSON 对象2.2、请求转发2.3、请求重定向2.4、自定义返回的内容 1、什么是 SpringMVC 1、Tomcat 和 Servlet 分别是什么&#xff1f;有什么关系&#xff1f; Servlet 是 java 官方定义的 web 开发的标准规范&#xff1b;Tomcat 是…...

PyCharm接入本地部署DeepSeek 实现AI编程!【支持windows与linux】

今天尝试在pycharm上接入了本地部署的deepseek&#xff0c;实现了AI编程&#xff0c;体验还是很棒的。下面详细叙述整个安装过程。 本次搭建的框架组合是 DeepSeek-r1:1.5b/7b Pycharm专业版或者社区版 Proxy AI&#xff08;CodeGPT&#xff09; 首先了解不同版本的deepsee…...

Linux服务升级:Almalinux 升级 DeepSeek-R1

目录 一、实验 1.环境 2.Almalinux 部署 Ollama 3.Almalinux 升级 DeepSeek-R1 4.Almalinux 部署 docker 5. docker 部署 DeepSeek-R1 6.Almalinux 部署 Cpolar (内网穿透) 7.使用cpolar内网穿透 二、问题 1.构建容器失败 一、实验 1.环境 &#xff08;1&#xff09…...

Linux操作系统5- 补充知识(可重入函数,volatile关键字,SIGCHLD信号)

上篇文章&#xff1a;Linux操作系统5-进程信号3&#xff08;信号的捕捉流程&#xff0c;信号集&#xff0c;sigaction&#xff09;-CSDN博客 本篇Gitee仓库&#xff1a;myLerningCode/l26 橘子真甜/Linux操作系统与网络编程学习 - 码云 - 开源中国 (gitee.com) 目录 一. 可重入…...

ctfshow刷题笔记—栈溢出—pwn61~pwn64

目录 前言 一、pwn61&#xff08;输出了什么&#xff1f;&#xff09; 二、pwn62&#xff08;短了一点&#xff09; 三、pwn63(又短了一点) 四、pwn64(有时候开启某种保护并不代表这条路不通) 五、一些shellcode 前言 这几道都是与shellcode有关的题&#xff0c;实在是…...

java23种设计模式-责任链模式

责任链模式(Chain of Responsibility Pattern)学习笔记 编程相关书籍分享:https://blog.csdn.net/weixin_47763579/article/details/145855793 DeepSeek使用技巧pdf资料分享:https://blog.csdn.net/weixin_47763579/article/details/145884039 🌟 模式定义 责任链模式是…...

新一代跨境电商ERP系统:从订单到发货的全流程自动化管理

随着全球电商市场的持续扩张&#xff0c;跨境电商卖家面临着多平台运营、国际物流、税务合规等复杂挑战。如何高效整合订单、库存、物流和财务数据&#xff0c;实现从客户下单到商品交付的无缝衔接&#xff0c;成为企业降本增效的关键。Zoho Books作为一款专为跨境商家设计的智…...

Java基础小知识

一、 计算机基础知识1.计算机硬件的分类&#xff1a;运算器 控制器 存储器 输入设备 输出设备二、cmd命令窗口的基本用法操着&#xff1a; 说明&#xff1a;盘符名称 &#xff1a; 盘符切换。E:回车&#xff0c;表示切换到E盘dir 查看当前路径下的内容cd 目录 进入单级目录。cd…...

从官方demo到真实项目:手把手教你定制uniapp uni-card卡片的样式与交互

从官方demo到真实项目&#xff1a;手把手教你定制uniapp uni-card卡片的样式与交互 在移动应用开发中&#xff0c;卡片式设计已经成为展示内容的黄金标准。uni-app的uni-card组件为开发者提供了一个快速构建卡片式界面的基础工具&#xff0c;但实际项目中&#xff0c;我们往往需…...

Real-ESRGAN图像增强:3步掌握AI超分辨率魔法

Real-ESRGAN图像增强&#xff1a;3步掌握AI超分辨率魔法 【免费下载链接】Real-ESRGAN Real-ESRGAN aims at developing Practical Algorithms for General Image/Video Restoration. 项目地址: https://gitcode.com/gh_mirrors/re/Real-ESRGAN 你是否曾为模糊的老照片、…...

【笔记】HarmonyOS核心设计理念

HarmonyOS初衷不是为了平替&#xff0c;是看到了万物智联时代,对智能终端操作系统有许多新的诉求&#xff1b; 本内容主要帮助理解HarmonyOS核心设计理念的关键背景与创新驱动力&#xff1b; 第一节&#xff1a;回顾操作系统的发展历史 第一台通用计算机诞生于1946年&#xf…...

达梦数据库-统计信息收集-记录

达梦数据库-统计信息收集-记录总结 1统计信息收集 统计信息主要是描述数据库中表和索引的大小及数据分布状况等信息。比如&#xff1a;表的行数、块数、平均每行的大小、索引的高度、叶子节点数以及索引字段的行数等。统计信息对于CBO&#xff08;基于代价的优化器&#xff0…...

SpaceX启动纳斯达克IPO,1.75万亿美元市值目标能否实现?

SpaceX启动纳斯达克IPO5月21日&#xff0c;马斯克旗下的商业航天、通信与AI巨头SpaceX向美国SEC公开提交S - 1注册声明&#xff0c;启动纳斯达克IPO流程。其承销商包括高盛、摩根士丹利、美国银行证券、花旗、摩根大通证券。这版S - 1文件暂未披露具体的发行股数和定价区间。不…...

奇迹 MU 荣耀出征 新区开区 最新地址官方正版下载

《奇迹 MU 荣耀出征》是正版授权的复古魔幻 MMORPG 手游&#xff0c;完美复刻端游 1.03H 黄金版本核心玩法&#xff0c;逐光娱手游官网https://www.gw648.com提供官方正规下载渠道&#xff0c;带你重回艾瑞西亚大陆&#xff0c;再续荣耀传奇。 官方正版下载渠道 《奇迹 MU 荣耀…...

ChatGPT Plus 怎么购买?2026 开通教程

如果你还在犹豫是否有必要开通 Plus&#xff0c;可以先通过AI模型聚合平台 做一些基础体验&#xff0c;对比不同模型在写代码、改文档、做总结时的效果&#xff0c;再决定要不要正式升级 ChatGPT Plus。到了 2026 年&#xff0c;ChatGPT 已经不只是“聊天工具”&#xff0c;更像…...

通过 API 实时监听企业微信外部群变更事件并同步本地数据库

能力介绍 在企业微信外部群的协同管理中&#xff0c;群聊的名称修改、群主变更、新成员加入或老成员退群等状态变更&#xff0c;往往无法仅靠主动拉取来感知。该能力通过配置接收事件服务器&#xff08;Callback&#xff09;&#xff0c;利用标准的 HTTP POST 请求实时接收企微…...

YCWebView架构设计与源码解析:面向对象设计思想与模块化实现

YCWebView架构设计与源码解析&#xff1a;面向对象设计思想与模块化实现 【免费下载链接】YCWebView 基于腾讯x5开源库&#xff0c;提高webView开发效率&#xff0c;大概要节约你百分之六十的时间成本。该案例支持处理js的交互逻辑且无耦合、同时暴露进度条加载进度、可以监听异…...