一、递归的本质是什么:递归本质就是循环,只是他是通过循环体进行循环。如果我们把循环的代码和递归的代码进行汇编的话,会发现他们之间有异曲同工之妙
二、java递归代码
public void recur(int level, int param){ //terminator if(level>MAX_VALUE){ //process result return; } //process result process(level, param); //drill down recur(level+1,newParam); //restore current status }
三、 初级阶段可以人肉递归或者画递归状态树
四、找最近 重复 子问题。为什么要找最近重复子问题,因为我们计算机只有if else, for while, 递归调用。往往你觉的一个问题很复杂,但是有的时候只用几行代码就能解决,这是因为代码中有很多重复性,我们可以转化为简单的循环问题,或者 if-else解决。
总结:
- 抵制人肉递归
- 找 最近 重复性
- 数学归纳法思维