递归满足三个条件
- 问题的解可以分解为几个子问题的解
- 问题与子问题求解的思路是一样的【可以通过同一个递归公式求解】
- 递归要有终止条件
编写递归公式
- 思维误区:想要把每一步的递与归都想清楚
- 正确思想:遇到递归,我们就把它抽象成一个递推公式,不用去考虑每一层的调用公式,不要试图去分解每一个调用【例如:问题A分解成 问题B,C,D,可以假设问题B,C,D已经解决了,这个时候我们只要考虑A与B,C,D之间的关系】
注意点:
- 防止栈溢出,通过判断if
- 警惕重复运算【可以通过一个散点图,把计算好的点放进去,然后我们每次先看是否已经算好】
心得:这篇文章是我看“极客时间”后的笔记,以前碰到递归确实会陷入思维误区,而且自己也一直不会写递归,后面用今天学习的内容去再一次学习递归。【并且发现自己买的专栏好像还不错,自己可以学到东西】