纯递归:问题:程序未能在规定时间内运行结束。

class Solution {
public:
    int Fibonacci(int n) {
        if(n<=0) return 0;
        if(n==1) return 1;
        return Fibonacci(n-1)+Fibonacci(n-2);
    }
};

改进:避免重复计算,解决方法:保存中间计算结果。
图片说明

class Solution {
public:
    int Fibonacci(int n) {
        if(n<=0) return 0;
        if(n==1) return 1;

        int fzero=0,fone=1,fn=0;
        for(int i=1;i<n;i++){
            fn=fone+fzero;
            fzero=fone;
            fone=fn;
        }
        return fn;
    }
};