题解 | #斐波那契数列#--递归+动态规划及其优化版

斐波那契数列

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

public class Solution {
    public int Fibonacci(int n) {
        /*//方法一:递归法,比较直白,时间复杂度为o(2^n)
        if(n==1){
            return 1;
        }
        if(n==2){
            return 1;
        }
        return Fibonacci(n-1)+Fibonacci(n-2);*/
        /*//方法二:动态规划法--时间复杂度和空间复杂度均为o(n)
        if(n==1||n==2){
            return 1;
        }
        int[] arr=new int[n+1]; //n=0时,为0
        arr[0]=0;
        arr[1]=1;
        arr[2]=1;
        for(int i=3;i<=n;i++){
            arr[i]=arr[i-1]+arr[i-2];
        }
        return arr[n];*/
        
        //方法三:动态规划法优化版--把空间复杂度降为o(1)--只需要用到三个变量
        if(n==1||n==2){
            return 1;
        }
         int f1=1;
        int f2=1;
        int fn=0;
        for(int i=3;i<=n;i++){
            fn=f1+f2;
            f1=f2;
            f2=fn;
        }
        return fn;
    }
}

全部评论

相关推荐

05-07 19:10
已编辑
中国科学技术大学 C++
silly01:现在先去 momenta,8-9月去鹅找日常实习,八股文算法背好了你这随便进。不过建议补充一下后端知识,MySQL、Redis看下八股,再补个6824,加点go后台的技术栈,9月随便进大厂。CPP后端只能来WXG
点赞 评论 收藏
分享
LemontreeN:有的兄弟有的我今天一天面了五场,4个二面一个hr面
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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