题解 | #斐波那契数列#

备忘录法

package DP;
//斐波那契 备忘录法
public class test1 {
    public static void main(String[] args) {
        Solution01 solution01 = new Solution01();
        int a=solution01.Fibonacci(4);
        System.out.println(a);

    }

}
class Solution01 {
    public int Fibonacci(int n) {
        int Memo[]=new int[n+1];
        for (int i = 0; i < Memo.length; i++) {
            Memo[i]=-1;
        }
        return fib(n,Memo);
    }
    public int fib(int n,int Memo[]){
        int res=0;
        Memo[0]=0;
        if (n==1){
            Memo[n]=1;
            res=Memo[n];
        }
        if (n>=2){
            if (Memo[n]!=-1){
                res=Memo[n];
            }
            else{
                Memo[n]=fib(n-1,Memo)+fib(n-2,Memo);
                res=Memo[n];
            }
        }

        return res;
    }
}

自底向上

public class Solution {
    public int Fibonacci(int n) {
        int Memo[]=new int[n+1];
        Memo[0]=0;
        Memo[1]=1;
        for (int i = 2; i <=n; i++) {
            Memo[i]=Memo[i-2]+Memo[i-1];
        }
        if (n<=0){
            return n;
        }
        return Memo[n];

    }
}


全部评论

相关推荐

object3:开始给部分🌸孝子上人生第一课了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务