刷题量 3000+、FLAG 工程师、前算法竞赛国家集训队员令狐冲老师就在课程中反复强调:面试很多时候就看你会不会递归和动规。
其中,递归作为基础中的基础,可以说 99.99999%的算法面试中会考到,如果因为递归问题挂掉面试,那就真真真真真的太可惜了。
递归三要素:
递归的定义:接受什么参数,返回什么值,代表什么意思 。当函数直接或者间接调⽤⾃⼰时,则发⽣了递归
递归的拆解:每次递归都是为了让问题规模变⼩
递归的出⼝:必须有⼀个明确的结束条件。因为递归就是有“递”有“归”,所以必须又有一个明确的点,到了这个点,就不用“递下去”,而是开始“归来”。
下面这个求 n! 的例子中,递归出口(确定递归什么时候结束)是 fun(1)=1,递归体(确定递归求解时的递归关系)是 fun(n)=n*fun(n-1),n>1。
int fun(int n){
if(n==1)
return 1;
else
return n*fun(n-1);
}
递归经典案例还有斐波那契数列、⼆阶阶乘等,想要更好地掌握这个知识点,可以去听递归四讲哦~《递归四讲》这门原价$199 的课程,现在 v 站用户免费即可获得!参与方式:戳我免费试听后,添加九章 Sunny 微信 jiuzhang15,回复 [ V2EX 递归] +试听报名截图即可免费获得本课程。