leetcode【递归/回溯问题】总结

回溯问题分析

注意:

  1. 整体思路清晰,回溯的过程大概是怎样的
  2. 每层递归实际上要解决的问题是什么
  3. 一定记住,该重置的状态要重置,因为回溯就是相当于在每一层的递归中做选择,选择了不同的选项,在遇到阻碍或者达到条件结束递归之后,再想尝试其他的选择路径,应当记住回退到之前的状态。

纵向:递归的深度,完整地解决问题(搜索完所有的方案/找到最优方案 )所必须完成地一整个连续过程,该过程的长度。例如,在“选/不选”递归(0/1递归)中,递归的深度是可选值的数量。

对于纵向思维,要有层层深入,逐渐解决问题的概念。对于横向思维,其实就是从并列的多个选项中选择一个出来加入当前的方案,或者说是在岔路口选择一条路.... 它只是考虑在当前的路口(某层的递归状态中)解决了当前的问题。而不管可选项再多,只能从中选择一个,对于整个递归路径来说,也只是解决了当前的一个问题而已。

横向:每一层递归考虑的选择范围,有多个选项,并且只能从这多个并列选项中选择一条。例如: “选/不选”递归(0/1递归);在网格中寻找路径的题目中,每一层的递归可以考虑的选择范围是“上下左右”四个方向。

小结: 把回溯问题当做是闯关游戏,纵向就是游戏进度在不断的前进,而横向就是每一关中自己做的不同选择,做了不同的选择就会走在不同的闯关路径上,我们要不就是(1)在目前的闯关路径上一闯到底(完成一次合格的搜寻,如果是最优问题,可能已经找到了解;如果是要给出所有可能的解,我们在记录了合格解后,还需要回溯重置,再选择不同的路径重新探索)(2)要不就是领盒饭(因为一些限制条件,提前终止),然后回溯重置,再选择不同的路径重新探索。

-----------------------------------------------------------------------------------------

人生,却不能像回溯一样,回退重选。在某个状态下即使面临很多选择,我们也只能从中选择一个,然后继续往前走,关于限制条件,它本身不能让我们强制领盒饭,不过却可以改变甚至重塑我们的生活和精神

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值