Leetcode刷题日记(十三)

又是老台词:欢迎大家来到一晚一度的leetcode刷题日记。今天我们来看看我们的一位“朋友”--递归。没错,就是他,可能编程小白在学C语言时心里的噩梦就是他,别看他只是短短两个,其实他变起花样来,连博主都怕,真的。其实,递归是研究算法问题最常见见到的朋友之一(后面的回溯也是,hhh剧透一下)。所以博主决定用几篇的文章来致敬一下老哥,以此突出他的重要性。

下面直接上题目。我们先从最简单的斐波那契数列开始(小白最常遇到的问题):

解题代码(最简单的C语言版,其实此题c++写也是一样的):

nt fib(int n) {
    if (n < 2) {
        return n;
    }
    int p = 0, q = 0, r = 1;
    for (int i = 2; i <= n; ++i) {
        p = q;
        q = r;
        r = p + q;
    }
    return r;
}

上面的代码其实没用到递归,只是用到了循环迭代

下面的代码才用到递归

解题代码:

nt fib(int n)

{

if(n<2)

return n;

else fib(n)=fib(n-1)+fib(n-2);

return fib(n);

}

大家觉得代码量有没有减少啊,其实这就是递归的好处,可以使问题解决更加方便。

好啦,今天的分享就到这啦,大家早点睡哦,不要熬夜哦。

本贴为博主亲手整理。如有错误,请评论区指出,一起进步。谢谢大家的浏览.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值