美文网首页
最小花费

最小花费

作者: 赵老拖 | 来源:发表于2022-05-17 00:46 被阅读0次

    描述

    给定一个整数数组 cost,其中cost[i] 是从楼梯第i 个台阶向上爬需要支付的费用,下标从0开始。一旦你支付此费用,即可选择向上爬一个或者两个台阶。

    你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。

    请你计算并返回达到楼梯顶部的最低花费。

    image.png

    解题思路:
    每次到一个台阶,只有两种情况,要么是它前一级台阶向上一步,要么是它前两级的台阶向上两步,因为在前面的台阶花费我们都得到了,因此每次更新最小值即可,转移方程为:
    dp[i]=min(dp[i−1]+cost[i−1],dp[i−2]+cost[i−2])。
    其中dp[0] dp[1] = 0;

    import java.util.*;
    
    
    public class Solution {
        /**
         * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
         *
         * 
         * @param cost int整型一维数组 
         * @return int整型
         */
        public int minCostClimbingStairs (int[] cost) {
            // write code here
            int[] dp = new int[cost.length+1];
            for(int i = 2;i<=cost.length;i++){
                dp[i] = Math.min(dp[i-2]+cost[i-2],dp[i-1]+cost[i-1]);
            }
            return dp[cost.length];
        }
    }
    
    

    相关文章

      网友评论

          本文标题:最小花费

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