题解 | #斐波那契数列# 【模拟】详细注释 双超100

斐波那契数列

http://www.nowcoder.com/practice/c6c7742f5ba7442aada113136ddea0c3

解题思路

本题为简单模拟题,按题给条件进行n次模拟即可。当然也有打表和公式的O(1)解法。

代码

class Solution {
public:
    int fib(int n) {
        if(n==0) return 0;//如果n为0,返回0
        int a = 1;//f(n-1)
        int b = 1;//f(n-2)
        int ans = 1;
        for(int i = 3; i <= n; i++){
            ans = a + b; f(n) = f(n-1) + f(n-2)
            a = b;//更新f(n-2)
            b = ans;//更新f(n-1)
        }
        return ans;//返回答案
    }
};

复杂度分析

时间复杂度: O(n)。

空间复杂度: O(1)。

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-27 20:15
还能挽救吗?找同学帮忙看了一下&nbsp;字节怎么能如此对我
牛客26396789...:你这是严重红线,被发现你自己永远进不去,你那个同学直接走人,你还敢宣扬
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务