递归的三大步骤

1.明确函数要做什么,也就是定义递归的功能。
2.明确递归的结束(退出递归)的条件。
3.找到函数的等价关系式,要不断缩小参数的范围

模型一:在递去的过程中解决问题

function recursion(大规模){
      if (end_condition){ // 明确的递归终止条件
             end; // 简单情景 
        }else{ // 在将问题转换为子问题的每一步,解决该步中剩余部分的问题                                                  
     solve;  //递去
     recursion(小规模); // 递到最深处后,不断地归来
 } 
}

模型二:在归来的过程中解决问题

function recursion(大规模){
      if (end_condition){ // 明确的递归终止条件
             end; // 简单情景 
        }else{ //先将问题全部描述展开,再由尽头返回依次解决每步中剩余部分的问题                                                
     recursion(小规模); // 递去
     solve;    //归来
 } 
}


关键在于,理解透“递”和“归”的过程。


leetcode      递归

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!