美文网首页
最小花费

最小花费

作者: 赵老拖 | 来源:发表于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