递归特性,思维要点

递归的特性

递归的本质就是函数调用自身,每次都会带着当前层的状态或参数下探到下一层,进行重复性的步骤,直至递归出口,携带改变后的状态结果返回到上一层。

 

递归代码的模板

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也成立

 

原文地址:https://www.cnblogs.com/Deaseyy/p/13973424.html