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

news/2025/3/22 19:01:18/文章来源:https://www.cnblogs.com/cscpp/p/18230365

回溯算法理论基础

文章讲解 视频讲解

  • 回溯是递归的副产品,只要有回溯就会有递归
  • 回溯的本质是琼剧,所以效率不高

回溯法可以解决的问题

  • 组合问题
  • 切割问题
  • 子集问题
  • 排列问题
  • 棋盘问题

如何理解回溯

  • 回溯算法的问题都可以抽象为树形结构
  • 集合的大小就构成了书的快读,递归的深度就构成了树的深度

回溯法模板

回溯三部曲

  • 回溯函数返回值及参数
    返回值一般为void,参数通常不固定,先写逻辑需要什么参数再传什么参数

    void backtracking(参数)
    
  • 回溯函数终止条件
    一般来说搜索到叶子节点就可以回溯了

    if(终止条件) {存放结果;return;
    }
    
  • 回溯搜索的遍历过程

    for(选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {处理节点;backtracking(路径,选择列表); // 递归回溯,撤销处理结果
    }
    
  • 整体框架

    void backtradking(参数) {if(终止条件) {存放结果;return;}for(选择:本层集合中的元素(树中节点孩子的数量就是集合的大小)) {处理节点;backtracking(路径,选择列表); // 递归回溯,撤销处理结果}
    }
    

77.组合

题目链接 文章讲解 视频讲解

class Solution {
public:vector<vector<int>> combine(int n, int k) {vector<int> path;vector<vector<int>> ans;backtracking(n, k, path, ans, 1);return ans;}void backtracking(int n, int k, vector<int>& path, vector<vector<int>>& ans, int startIndex) {// 终止条件if(path.size() == k) {ans.push_back(path);return ;}for(int i = startIndex; i <= n; ++i) {// 处理节点path.push_back(i);// 递归backtracking(n, k, path, ans, i + 1);// 回溯path.pop_back();}}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/719791.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

neural network structure 神经网络

分类 多层感知神经网络——最基础 卷积神经网络——善于图像识别 长短期记忆网络——善于语音识别 多层感知——数字识别 以一张28*28像素的单个数字图片为例,输出对应0-9 ![](file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml17560\wps1.jpg) 每个像素点的灰度值0-1,即…

Windows bat批处理特殊符号路径处理()圆括号、空格

前言全局说明Windows bat批处理特殊符号路径处理()圆括号、空格 遇到特殊符号路径报 \ was unexpected at this time. 错误一、说明 环境: 版本:Windows 11 家庭版 版本:23H2 操作系统版本:22631.3593二、带括号的路径 2.1 目的:判断,路径下 D:\temp\aa^(1^)\desktop.ini 的…

导出谷歌地图提供的各类地图可视化样式的方法

本文介绍在谷歌地图API(Google Maps APIs)中,设计地图样式并将设计好的样式通过JSON或URL导出的方法~本文介绍在谷歌地图API(Google Maps APIs)中,设计地图样式并将设计好的样式通过JSON或URL导出的方法。首先,进入Google Maps APIs网站。在弹出的窗口中我们可以看到,目…

雷池WAF-动态防护新功能体验

雷池WAF 雷池WAF(Web Application Firewall,网络应用防火墙)是由长亭科技开发的一个网络安全产品,它专注于保护Web应用免受黑客攻击。 今天主要讲的是长亭雷池最近新出的功能:动态防护安装 雷池WAF支持多种安装方式:sh脚本安装、离线安装、牧云助手安装 本篇文章以牧云助…

OpenCloudOS 助力趣丸科技降本增效,容器化高效运行

导读:趣丸科技,一家集兴趣社交、电子竞技、人工智能于一体的创新型科技企业,在采用 OpenCloudOS 开源操作系统后,结合业务特点将容器化集群平均利用率提高到 40% 左右,高峰利用率达 80% ,降本增效的同时,满足了不断增长的业务需求。本文将介绍 OpenCloudOS 在趣丸科技的…

为什么你的RAG不起作用?失败的主要原因和解决方案

无数企业正在尝试使用检索增强生成(RAG),但在制作这些系统达到生产质量时普遍会感到失望。因为他们的RAG不仅运行效果差,而且对于如何改进和如何进行后续的工作也感到十分的迷茫。 其实阻碍RAG系统的一个关键因素是语义不协调,这是由于任务的预期含义、RAG的理解以及存储的…

铁威马T系列NAS企业优季:办公利器,六折钜惠来袭!

众所周知,现如今企业对于数据存储和管理的需求日益增长,为满足广大企业用户的实际需求,恰逢6.18,铁威马特别推出T系列NAS(网络附加存储)企业特惠季活动,以低至六折的优惠价格,让您轻松拥有高效、稳定的办公利器。 一、铁威马T系列NAS:性能卓越,稳定可靠 铁威马T系列N…

腾讯云API网关废了?集群开源方案平替

前言:一则公告背景:某云API网关要跑路啦 听过腾讯云API网关要下线了,之前的项目都(bu)是(shi)用的这个,现在要换成什么呢? 【重要】API 网关产品停止售卖公告 这玩意当年我还在白嫖腾讯云k8s master集群的时候, 某一次升级之后他们把k8s的service 切成了API网关, 然…

.NET Core Configuration 配置项知识点一网打尽!

控制台项目中,演示示例1.自定义 Dictionary Config 内存字典模式 dotnet add package Microsoft.Extensions.ConfigurationIConfigurationBuilder builder = new ConfigurationBuilder(); builder.AddInMemoryCollection(new Dictionary<string, string>() {{"key…

梵几 x TapData:如何高效落地实时数据中台,助力家居企业优化数字营销

面对业务拓展带来的数据需求,梵几家具采用分布式数据中心+数据中台的方案,并由 TapData Cloud 作为数据同步组件。本文将探索如何利用该方案实现高效的数据管理和业务运营,完善数字化能力,提升运营效率和客户体验。使用 TapData,化繁为简,摆脱手动搭建、维护数据管道的诸…

mac 安装和管理多个Python版本

更新brewbrew updatebrew install pyenv 安装pyenv报错==> Downloading https://raw.githubusercontent.com/Homebrew/homebrew-core/c1c28c143f4e28fc0059e66baa904104da25a41d/Formula/o/openssl@3.rb curl: (7) Failed to connect to raw.githubusercontent.com port 443…