递归+回溯+DFS+BFS

计算递归的空间复杂度时,一般都从栈的角度出发,因为每调用一次函数就会占用栈的一个格子,看调用了几次可以看出空间复杂度是多少

递归的核心思想:把规模大的问题转化为规模小的且逻辑相似的子问题来解决

递归三要素:明白这个递归function的作用是什么;递归终止条件(以及终止之后的处理方法);递归body的逻辑(抽象出一个干净利落的重复逻辑用到子问题以及最终母问题上)

:将大问题化为小问题,直到无法再细化为止,去解决这个小问题;先写递归body再进行递归操作实在“递”去的过程中解决问题

:将解决了的小问题一层一层往回返,解决原问题;先进行递归操作再写递归body是在“归”来的过程中解决问题

递归的常见应用场景:

(1). 问题的定义是按递归定义的(Fibonacci函数,阶乘,…);

(2). 问题的解法是递归的(有些问题只能使用递归方法来解决,例如,汉诺塔问题,…);

(3). 数据结构是递归的(链表、树等的操作,包括树的遍历,树的深度,…)。

递归的时间效率和空间效率一般不高

千万不要模拟铺开递归的过程和细节,只需搞清母问题与子问题是怎么联系起来的,中间有何关系,以及抓住函数的输入和输出应该是什么即可;一个巧妙的方法<

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值