题解 | #最小花费爬楼梯#

最小花费爬楼梯

https://www.nowcoder.com/practice/6fe0302a058a4e4a834ee44af88435c7

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param cost int整型一维数组
     * @return int整型
     */
    public int minCostClimbingStairs (int[] cost) {
        // write code here
        int minResult[] = new int[cost.length];
        minResult[0] = cost[0];
        if(cost.length == 1)
            return 0;
        minResult[1] = cost[1];

        for (int i = 2; i < cost.length; i++) {
            if(minResult[i - 1] + cost[i] < minResult[i - 2] +cost[i]){
                minResult[i] = minResult[i - 1] + cost[i];
            }else {
                minResult[i] = minResult[i - 2] + cost[i];
            }
        }
    
       return minResult[cost.length - 2] < minResult[cost.length - 1] ? 
        minResult[cost.length - 2]: minResult[cost.length - 1];
    }
}

全部评论
这题竟然是贪心算法,想了很久其实也没想懂,这题是贪心算法: 首先到达该层台阶,只能是前一步或前两步到过来,然后假设前一步和前两步是最优,那么到该层的最优必然是这两种情况比较的最优,那么往前推,假设必然成立,即贪心了。 然后,最后的结果也必然是前一步或前两步+0的最优
点赞 回复 分享
发布于 2024-06-12 12:16 上海

相关推荐

如题,这操作。。。。
真烦好烦真烦:既想享受国家的招聘应届生福利,又不想培养新人,我只能说这种企业的ld太过分了
投递美的集团等公司10个岗位 >
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务