动态规划理解

131 阅读1分钟

动态规划理解

   //    动态规划(Dynamic Programming, DP)是一种通过把原问题分解为相互重叠的子问题来求解复杂问题的方法,
    //    特别适用于具有最优子结构和重叠子问题性质的问题。
    //    在Java中实现动态规划通常涉及创建一个数组或矩阵来存储已经计算出的子问题结果,
    //    以避免重复计算,并逐步构建最终的解决方案。
    public static int fibonacci(int n){
        if(n<=0){
            return 0;
        }else if(n==1){
            return 1;
        }
        int[] dp=new int[n+1];
        dp[0]=0;
        dp[1]=1;
        for (int i = 2; i <=n ; i++) {
            dp[i]=dp[i-1]+dp[i-2];
        }
        return dp[n];
    }