题解 | #牛牛的跳跃挑战#

牛牛的跳跃挑战

https://www.nowcoder.com/practice/0c99c2161c2d4a4e91ca55363cc0e059

知识点

动态规划

解题思路

定义一个一维数组dp,dp[i]表示从起点跳到第i个障碍物时所需的最低能量值。当i小于3时,所需的能量值为height[i],当i大于等于3后,所需的能量值就为前面三次能量值的最低值加上当前height[i]的能量值。最后取最后三次跳跃中的能量最小值。

Java题解

import java.util.*;


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

        for (int i = 0; i < n; i++) {
            if(i < 3){
                dp[i] = height[i];
            } else {
                dp[i] = Math.min(dp[i - 1], Math.min(dp[i - 2], dp[i - 3])) + height[i];
            }
        }

        return Math.min(dp[n - 1],Math.min(dp[n - 2],dp[n - 3]));
    }
}

全部评论

相关推荐

芜湖e:我在这家待过,老板就一rz,能别去就别去,还在用jsp,合同也不主动给你签,上班看一下手机他就要把你叫到办公室说你,公司项目也老,还在用jsp,纯屎山代码,我干了三天就跑路了,工资也没给😅
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务