news 2026/10/4 20:25:29

算法杂谈:回溯路线

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
算法杂谈:回溯路线

目录

前言

在动态规划中:

在bfs中:


前言

对于普通的路线问题,我们可以存储全局变量path存储路线过程中的,一个个“点”。由于这些点就是按照顺序存储的,路线就是可以直接得到的。

但是如果是动态规划,或者是带有图需要从一个点开始找到另一个点,我们在找到结果后还需要回溯这个结果的实现路线,这里没办法轻松得到路线,那么我们就需要尽可能利用条件,从该结果往回退找到上一个节点是什么,这里介绍两种目前已经遇到的情景。

在动态规划中:

以牛客网 最长公共子序列II 为例

最长公共子序列(二)_牛客题霸_牛客网

找到最长子序列,我们还需要返回这个子序列是什么,既然我们已经完成填表,那么我们就可以,以dp值为引,按照dp值递减的顺序,修改i和j的坐标,当s1[i]==s2[j]时此时这个就是我们要寻找的节点,头插进结果,让i--,j--(意味着继续道s1[0,i-1],s2[0,j-2]区间内寻找);如果不等,往可以使dp值减少的方向前进,于是我们就找到了路线。

代码实现如下:

class Solution { public: string LCS(string s1, string s2) { int n=s1.length(),m=s2.size(); s1=' '+s1,s2=' '+s2; vector<vector<int>> dp(n+1,vector<int>(m+1)); for(int i=1;i<=n;++i) { for(int j=1;j<=m;++j) { if(s1[i]==s2[j])dp[i][j]=dp[i-1][j-1]+1; else dp[i][j]=max(dp[i-1][j],dp[i][j-1]); } } //回溯构造LCS string ret; int i=n,j=m; while(i&&j) { if(s1[i]==s2[j]) { ret=s1[i]+ret; --i; --j; } else if(dp[i-1][j]>dp[i][j-1])--i; else --j; } return ret==""?"-1":ret; } };

在bfs中:

以bjfuoj的 码码,我迷路了 为例

BJFUOJ | 码码,我迷路了

该题是一道很简单的bfs经典题,但找到目标点后,我们还需要输出从起点到目标点依次经过的路径,此时依旧利用回溯,构造路线。

回溯路线:因为我们需要从一个节点得到上一个节点的信息,这里节点的信息就是对应的坐标,那么我们可以创建一个“point”类型的二维数组fa,用fa[i][j]存储到达点{i,j}的上一个节点的坐标,具体代码体现就是在bfs中队列push新节点的时候,我们得到的节点假设是{newx,newy},因为newx和newy是由{x,y}得到的,我们使fa[newx][newy]={x,y}这样就得到了上一个节点的位置,就可以实现回溯了。

此篇完。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/4 11:37:57

Langchain-Chatchat结合GPU加速推理,实现高性能问答服务

Langchain-Chatchat 结合 GPU 加速推理&#xff0c;打造高性能本地问答系统 在企业知识管理日益复杂的今天&#xff0c;如何让员工快速获取分散在成百上千份文档中的关键信息&#xff0c;已成为组织效率提升的瓶颈。一个常见的场景是&#xff1a;新员工想了解公司的差旅报销标准…

作者头像 李华
网站建设 2026/10/4 22:35:08

研究生必备:9款AI论文神器,真实文献交叉引用,一键生成文献综述

如果你是正在熬夜赶Deadline的毕业生&#xff0c;面对堆积如山的文献资料却无从下笔&#xff1b;或是面临延毕压力&#xff0c;被导师催稿催得焦头烂额的研究生&#xff1b;又或是没钱去支付高昂知网查重费用的大学生&#xff0c;别担心&#xff0c;这篇文章就是为你量身打造的…

作者头像 李华
网站建设 2026/10/4 16:36:36

2025中国iPaaS市场份额独立第一测评小白快速上手方法与步骤

《2025中国iPaaS行业发展白皮书》明确指出&#xff0c;企业集成平台优势明显已成为数智化转型的核心支撑。《2025中国iPaaS产品权威测评》通过对20主流平台的技术能力、用户体验、市场覆盖等维度评估&#xff0c;结合《2025中国iPaaS产品排行榜》数据&#xff0c;连趣云iPaaS平…

作者头像 李华
网站建设 2026/10/4 5:21:27

测试诚信原则:数字时代质量防线的基石与践行路径

测试诚信的时代呼唤 在数字化浪潮席卷全球的2025年&#xff0c;软件已深入社会各个角落&#xff0c;从医疗设备到金融系统&#xff0c;从智能家居到自动驾驶&#xff0c;其质量直接关乎人类安全与效率。作为软件质量的“守门人”&#xff0c;测试从业者的责任空前重大。然而&a…

作者头像 李华
网站建设 2026/10/4 16:31:32

实测 GPT-5.2 与 Gemini-3:我用 AI 重构了 3000 行核心代码,结果令人沉默

别再手写前端了&#xff1a;Banana Pro (Gemini-3-Image) 视觉模型实战评测&#xff0c;草图秒变代码作为一名写了十年代码的老程序员我一直坚信一个观点代码质量是衡量工程师水平的唯一标准直到昨天我花了两天两夜优化了一个复杂的并发算法模块沾沾自喜地准备提交结果我手欠试…

作者头像 李华
网站建设 2026/10/4 13:38:20

代码之恋(第十五篇:分布式心跳与网络延迟)

南国的早晨&#xff0c;李磊站在新租的公寓窗前&#xff0c;看着陌生的城市。来小渔村一周&#xff0c;升职带来的兴奋已褪去&#xff0c;剩下的是对江城的思念。他打开电脑&#xff0c;屏幕上显示着与艾丽的视频通话窗口——这是他们每晚的“同步时间”。// Collaboration_v3.…

作者头像 李华