递归的本质就是函数调用自身,每次都会带着当前层的状态或参数下探到下一层,进行重复性的步骤,直至递归出口,携带改变后的状态结果返回到上一层。
def recursion(level, parma1, prams2,...): # 1.递归终止条件 if level > MAX_LEVEL: # process result 处理结果 return # 2.处理当前层逻辑 process(level, data...) new_level = level +1 # 更新参数状态 # 3.下探到下一层 recursion(new_level, new_p1, new_p2)
思维要点
1.不要人工进行递归(最大误区)
2.找到最近最简单方法,将其拆解成可重复解决的问题(重复子问题)
3.数学归纳法,
-
比如,最简单的条件n=1,n=2条件成立,且能证明当n成立时,可以推导出n+1也成立