不会飞的章鱼

熟能生巧,勤能补拙;念念不忘,必有回响。

极客时间_7天算法体验营_Day4-递归的实现、特性以及思维要点

递归-Recursion

通过函数体来循环调用自己。

Python代码模板

1
2
3
4
5
6
7
8
9
10
11
12
13
def Recursion(level,param1,param2,...):
#递归终结条件
if level > MAX_LEVEL:
process_result
return

#处理当前层逻辑
process(level,data...)

#下探到下一层
self.Recursion(level+1,p1,...)

#清理当前层

Java代码模板

1
2
3
4
5
6
7
8
9
10
11
12
13
public void recur(int level,int param) {
//terminator
if (level > MAX_LEVEL) {
//process result
return;
}
//process current logic
process(level,param);
//drill down
recur(level:level+1,newParam);

//restore current status
}

思维要点

  • 不要人肉递归(最大误区)
  • 找到最近最简方法,将其拆解成可重复解决的问题(重复子问题)
  • 数学归纳法思维
------ 本文结束------
如果本篇文章对你有帮助,可以给作者加个鸡腿~(*^__^*),感谢鼓励与支持!