初始回溯算法

news2025/1/16 2:34:27

回溯算法一般用于对数据枚举后选取符合条件的结果并最终返回结果集的问题,之所以叫回溯法,是因为它可进可退
要想理解回溯的本质,还是要通过具体的题目去学习。

路径问题

https://www.nowcoder.com/practice/b736e784e3e34731af99065031301bca?
tpId=13&tqId=11177&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。

分析:
在这里插入图片描述
由图可以知道这里需要采取深度优先遍历(DFS)的方式先找到一个叶子节点。

 void _FindPath(TreeNode* root,int target,vector<vector<int>>& 
 result,vector<int>& tmp){		//不要忘记引用
 		//第五步,设置结束条件
 		if(root==nullptr)
 			return;
 		
 		//第一步,将当前节点值放入tmp
 		tmp.push_back(root->val);
 		target-=root->val;
 		if(root->left==root->right && target==0)//条件判断
 			result.push_back(tmp);
 		
 		//第二步,访问左树(子问题)
 		_FIndPath(root->right,target,result,tmp);
 		//本条语句执行完,代表左树的所有路径均已检测完
 		
 		//第三步,访问右树(子问题)
 		_FindPath(root->right,target,result,tmp);
		//本条语句执行完,代表右树的所有路径均已检测完
 		
 		//第四步,回退
 		tmp.pop_back();
 }
 vector<vector<int> > FindPath(TreeNode* root, int target) {
        vector<vector<int>> result;
        if(root==nullptr)
            return result;
        vector<int> tmp;	
        //需要一个临时变量来存放检测中的路径
        _FindPath(root,target,result,tmp);
        return result;
    }

全排列问题

https://www.nowcoder.com/practice/fe6b651b66ae47d7acce78ffdd9a96c7?
tpId=13&tqId=11180&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串 abc,acb,bac,bca,cab ,cba

分析:
在这里插入图片描述

bool IsExist(vector<string>& res,string& str,map<string,int>& Map){
        if(Map[str]==1){
            return true;
        }
        return false;
 }
 
 void _Permutation(vector<string>& res,string& str,int 
 start,map<string,int>& Map){
 		//结束条件
 		if(start==str.length()-1){
 			if(!IsExist(res,str,Map)){
 				res.push_back(str);
 				Map[str]=1;}
 			return;
 		}
 		
 		for(int i=start;i<str.length();++i){
 			swap(str[start],str[i]);
 			//让每一个元素都当一次首
 			_Permutation(res,str,start+1,Map);
 			//子问题:求首元素之后元素的排列组合
 			swap(str[start],str[i]);
 			//回退
 }
 
 vector<string> Permutation(string str) {
        vector<string> res;
        if(str==""){
            res.push_back(str);
        }
        map<string,int> Map;
        //需要一张映射表来方便后续去重
        _Permutation(res,str,0,Map);
        return res;
   }

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【RL】Value Function Approximation(值函数逼近)

Lecture 8: Value Function Approximation Algorithm for state value estimation Objective function 令 v π ( s ) v_{\pi}(s) vπ​(s)和 v ^ ( s , w ) \hat{v}(s, w) v^(s,w)是真实state value和近似函数。 算法的目标是找到一个最优的 w w w&#xff0c;使得 v ^ …

基于微信小程序的比赛赛程管理系统设计与实现

在全面健身的倡导下通过各级赛事的举办完成体育人才的选拔&#xff0c;当由于缺乏信息化的管理手段而只能通过人工完成比赛报名、赛程制定及成绩记录等流程的管理&#xff0c;因此常常因意外而导致比赛赛程管理不善、成绩不理想等问题出现。为了帮助比赛组织者优化赛程管理流程…

0220作业

C语言实现LED1闪烁 led.h #ifndef __LED_H__ #define __LED_H__//RCC寄存器封装 #define RCC_MP_AHB4_ENSETR (*(volatile unsigned int*)0x50000A28) //寄存器封装//GPIO寄存器封装 typedef struct{volatile unsigned int MODER; //00volatile unsigned int OTYPER; //04vol…

环信IM Android端实现华为推送详细步骤

首先我们要参照华为的官网去完成 &#xff0c;以下两个配置都是华为文档为我们提供的 1.https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides/android-config-agc-0000001050170137#section19884105518498 2.https://developer.huawei.com/consumer/cn/doc/HMSCore…

TikTok 被正式诉讼;马斯克称特斯拉一年前就能精确生成真实世界视频丨 RTE 开发者日报 Vol.147

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE &#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

释放软件资产的无限潜力:如何通过有效的管理实现价值最大化!

随着数字化时代的加速发展&#xff0c;软件资产已成为企业最重要的资产之一。然而&#xff0c;许多企业并未意识到软件资产管理的重要性&#xff0c;导致软件资产的价值无法得到充分发挥。本文将探讨软件资产管理的重要性&#xff0c;以及如何通过有效的管理实现软件资产价值的…

STL常用之vector,list,stack,queue,deque总结与对比

一&#xff0c;vector 1&#xff09;底层 vector的底层是开辟出来的一块连续空间&#xff0c;类似于数组&#xff0c;每次空间满了之后会根据不同的编译器有不同的扩容倍数。 2&#xff09;优劣 优点&#xff1a;随机访问效率高&#xff0c;因为地址是连续的&#xff0c;底层…

缓存驱动联邦学习架构赋能个性化边缘智能 | TMC 2024

缓存驱动联邦学习架构赋能个性化边缘智能 | TMC 2024 伴随着移动设备的普及与终端数据的爆炸式增长&#xff0c;边缘智能&#xff08;Edge Intelligence, EI&#xff09;逐渐成为研究领域的前沿。在这一浪潮中&#xff0c;联邦学习&#xff08;Federated Learning, FL&#xf…

【2024软件测试面试必会技能】python(3):python自动化测试项目的编写规则类和实例的调用

python -m pip install --upgrade pip 下载最新pip版本 python 项目的命名规则: 项目命名&#xff1a; 大写下划线 包/文件夹 &#xff1a;下划线命名法 html_report 小写下划线 模块名/文件名&#xff1a; 下划线命名法 小写下划线 类&#xff1a;驼峰式命名法 首字母大写 Lo…

C语言和C++的类型转换

文章目录 一、算术转换整形提升算术转换 二、隐式类型转换三、显式类型转换C语言旧式的类型转换1. C语言隐式类型转换2. C语言显式的类型强转 C引入的四种显式类型转换1. static_cast基本数据类型之间的转换类指针之间的转换&#xff1a;枚举类型之间的转换C 语言风格的强制类型…

facebook多账号运营为什么要用静态住宅ip代理?

在进行Facebook群控时&#xff0c;ip地址的管理是非常重要的&#xff0c;因为Facebook通常会检测ip地址的使用情况&#xff0c;如果发现有异常的使用行为&#xff0c;比如从同一个ip地址频繁进行登录、发布内容或者在短时间内进行大量的活动等等&#xff0c;就会视为垃圾邮件或…

神经网络学习小记录78——Keras CA(Coordinate attention)注意力机制的解析与代码详解

神经网络学习小记录78——Keras CA&#xff08;Coordinate attention&#xff09;注意力机制的解析与代码详解 学习前言代码下载CA注意力机制的概念与实现注意力机制的应用 学习前言 CA注意力机制是最近提出的一种注意力机制&#xff0c;全面关注特征层的空间信息和通道信息。…

花费200元,我用全志H616和雪糕棒手搓了一台可UI交互的视觉循迹小车

常见的视觉循迹小车都具备有路径识别、轨迹跟踪、转向避障、自主决策等基本功能&#xff0c;如果不采用红外避障的方案&#xff0c;那么想要完全满足以上这些功能&#xff0c;摄像头、电机、传感器这类关键部件缺一不可&#xff0c;由此一来小车成本也就难以控制了。 但如果&a…

欢迎来到IT时代----盘点曾经爆火全网的计算机电影

计算机专业必看的几部电影 计算机专业必看的几部电影&#xff0c;就像一场精彩的编程盛宴&#xff01;《黑客帝国》让你穿越虚拟世界&#xff0c;感受高科技的魅力&#xff1b;《社交网络》揭示了互联网巨头的创业之路&#xff0c;《源代码》带你穿越时间解救世界&#xff0c;这…

LabVIEW声速测定实验数据处理

LabVIEW声速测定实验数据处理 介绍了一个基于LabVIEW的声速测定实验数据处理系统的应用。该系统利用LabVIEW的强大数据处理和分析能力&#xff0c;通过设计友好的用户界面和高效的算法&#xff0c;有效提高了声速测定实验的数据处理效率和准确性。通过这个案例&#xff0c;可以…

2024最新uniapp基础腾讯IM

即时通信 IM 快速入门&#xff08;uniapp vue2/vue3&#xff09;-快速入门-文档中心-腾讯云

行人重识别综述

Deep Learning for Person Re-identification: A Survey and Outlook 论文地址https://arxiv.org/pdf/2001.04193 1. 摘要 we categorize it into the closed-world and open-world settings. closed-world&#xff1a;学术环境下 open-world &#xff1a;实际应用场景下 2…

瑞_23种设计模式_适配器模式

文章目录 1 适配器模式&#xff08;Adapter Pattern&#xff09;1.1 介绍1.2 概述1.3 适配器模式的结构 2 类适配器模式2.1 案例2.2 代码实现 3 对象适配器模式&#xff08;推荐&#xff09;★3.1 案例3.2 代码实现 4 拓展——JDK源码解析 &#x1f64a; 前言&#xff1a;本文章…

Java项目,营销抽奖系统设计实现

作者&#xff1a;小傅哥 博客&#xff1a;https://bugstack.cn 项目&#xff1a;https://gaga.plus 沉淀、分享、成长&#xff0c;让自己和他人都能有所收获&#xff01;&#x1f604; 大家好&#xff0c;我是技术UP主&#xff0c;小傅哥。 经过这个假期的嘎嘎卷&#x1f9e8;…