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

递归,分治,DFS,回溯的总结

算法的本质就是穷举,“遍历”和“分解问题”是穷举的两大思维模式。

回溯(一个传话兵):自始至终只有“一个你在走”。你走进了 A 房间,在墙上写了个字(做选择),发现是死胡同,你必须把字擦掉(撤销),退出来,才能再去 B 房间。因为如果你不擦,B 房间的人就会看到 A 房间的字,这就把状态污染了。

DP(分身术):你站在门口,直接克隆了两个自己(通过函数调用传入不同的参数,比如 start_idx + length)。克隆人 A 去了 A 房间,克隆人 B 去了 B 房间。克隆人 A 就算在里面把房间砸了,也丝毫不影响克隆人 B。他们执行完任务,只要把结果“喊”给你听就行了。

说白了,回溯自始至终就一个传话兵,所以要撤销,再去不同的房间。DP每到一个路口会分出不同的传话兵去不同的房间,然后汇报完就不用管了。如果都不用备忘录的话,回溯和DP做的事情差不多。如果都用备忘录的话,回溯和DP做的事情也差不多。

  1. 为什么说“没有备忘录时,做的事情差不多”?在没有备忘录的情况下,无论是回溯还是自顶向下的 DP,它们在计算机底层(内存栈)中遍历的节点总数、访问的路径顺序、以及总的时间复杂度,是完全一模一样的。它们都在做一件事情:盲目地穷举这棵巨大的决策树。唯一的微小区别只是:回溯通过一个全局变量在记录“我走过哪”,而 DP 通过函数的返回值在告诉上一层“我看到了什么”。但论干的“苦力活”(计算量),它们不相上下,都会超时。
  2. 为什么说“有备忘录时,做的事情也差不多”?一旦加上了备忘录,它们就同时拥有了“天眼”:回溯的那个传话兵,走到一个路口,看一眼公告牌(备忘录):“哦,以前的分身来过这,说前面是死胡同。” 传话兵立刻掉头,省去了无数步路。DP 的分身,走到同一个路口,看一眼公告牌:“哦,别的分身已经算过了。” 这个分身当场消失(返回结果),不再继续克隆新的分身。所以,加了备忘录后,它们都从“指数级”变成了“多项式级的高效剪枝”,做的事情依然是高度等价的。

个人总结:
分出不同的传令兵就对应分解问题,自始至终只有一个传令兵那实际上就是靠他去遍历。

http://www.jsqmd.com/news/1250311/

相关文章:

  • 【finetuning】路由器微调案例分析
  • 【我的第一篇博客】
  • 财务大数据处理的基本流程是怎样的?财务大数据在风险管控中有什么用?
  • 椰林海鲜码头企业新愿景是什么?:守善求真务实 - 17328623207
  • CSharp: Flyweight Pattern
  • 图表库:折线图、柱状图、饼图绘制库(246)
  • 功率预测正在“改写利润表”:雅砻江大模型之后,新能源场站真正要补的不是一个算法
  • TVA驱动的具身智能迭代逻辑(16)
  • EUV 光源的工作机理
  • 2026专业的全球EMBA中立择校测评
  • 大规模感知模型:多模态情绪识别与动态反馈系统解析
  • 从WMS批次到装配位置,追溯链怎样不断开
  • 2026年苹果云手机与安卓云手机技术代差全解析:为什么iPhone的ios云手机在账号安全维度具备不可替代性 - 资讯快报
  • 敏感数据与云端Agent的边界战争:我的4级隐私矩阵与本地沙箱实践
  • Web3里最大的骗局,居然是“官方客服”?聊聊那些年我们遇到的假维权群
  • 为什么92%的AI建筑图在施工图阶段失效?——3位国家一级注册建筑师联合复盘的5个致命断层点
  • Kamailio 关于 mhomed 的讨论之续集
  • 无人机视角航拍耕地违建占用农田违建房屋建筑检测数据集VOC+YOLO格式2249张1类别
  • 英文降AI方法实操!降AI指令、手动修改技巧分享(附3款提效工具测评)
  • WordPress Yoast SEO 配置 完整案例:解决红灯警告,修改4个地方秒变绿灯
  • AI大模型与数学 第6课:导数定义、几何意义、导数四则运算、全套基本求导公式推导
  • AI Agent如何重塑程序员工作流与核心竞争力
  • thread cache模拟设计实现
  • 报会计备考课有哪些坑?6个真实套路拆解,附省时上岸的工具选法
  • 2026.7.23
  • 三亚商务办公室装修推荐
  • 【AI流程图制作黄金法则】:20年架构师亲授5大避坑指南,90%新手第1步就错了
  • 地理探测器Geodetector_Arcgis Pro 下载学习
  • 易敏人群调理消费潮兴起 蓝帽认证牛初乳选品标准成关注焦点
  • 英文降AI率实战:Turnitin更新后,文本AI率优化策略(附3款工具测评)