题解 | #斐波那契数列#

斐波那契数列

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

第四十二题 都懒得写 和42一模一样
非递归
class Solution {
public:
    int Fibonacci(int n) {
        // 两种 一种递归 一种非递归
        // 非递归效率高
        if(n==1||n==2)
            return 1;
        int *a=new int[n];
        a[0]=1;
        a[1]=1;
        for(int i =2;i<n;i++)
            a[i]=a[i-1]+a[i-2];
        return a[n-1];
    }
};


递归
class Solution {
public:
        // 记录已经被计算出来的值
    map<int,int> map_flag;
    int Fibonacci(int n) {
        // 两种 一种递归 一种非递归
        // 递归
        if(n==1||n==2)
            return 1;
        if(map_flag.count(n))
            return map_flag[n];
        map_flag[n]=Fibonacci(n-1)+Fibonacci(n-2);
            
        return map_flag[n];
    }
};

题解 文章被收录于专栏

一遍做剑指offer 一边保存做题步骤 并附带详细注释哦

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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