美文网首页程序员
leetcode 746--DP

leetcode 746--DP

作者: Ariana不会哭 | 来源:发表于2018-12-20 05:00 被阅读5次
    图片.png
    • 基本思想:用dp[n]大小为n的数组保存sum结果。最后返回的时候判断min(dp[n-1],dp[n-2])。
      解释:最后返回的时候可以从最后一个返回,也可以从倒数第二个返回。


      图片.png

      C++:

    int minCostClimbingStairs(vector<int>& cost) {
            if(cost.size()==0)
                return 0;
            int n=cost.size();
            vector<int>dp(n,0);
            if(n==2)
                return min(cost[0],cost[1]);
            if(n==1)
                return dp[0];
            dp[0]=cost[0];dp[1]=cost[1];
            for(int i=2;i<n;i++){
                dp[i]=min(dp[i-1],dp[i-2])+cost[i];
            }
            return min(dp[n-1],dp[n-2]);
        }
    

    Java:

    //faster
        public int minCostClimbingStairs(int[] cost) {
            int n = cost.length;
            int[] dp = new int[n];
            dp[0] = cost[0];
            dp[1] = cost[1];
            for (int i = 2; i < n; i++) {
                dp[i] = cost[i] + Math.min(dp[i - 1], dp[i - 2]);
            }
            return Math.min(dp[n - 1], dp[n - 2]);
        }
    

    相关文章

      网友评论

        本文标题:leetcode 746--DP

        本文链接:https://www.haomeiwen.com/subject/girekqtx.html