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

牛牛的跳跃挑战

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

import java.util.*;


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

编程语言:Java

知识点:动态规划

代码简短解释:这使用了四个变量 a、b、c、d 来记录不同位置的最小能量值,然后通过循环遍历数组,更新这些变量。循环的起始位置是3,因为前两个位置的初始值 a 和 b 都为 0,c 和 d 则为当前位置的能量值。在每次循环中,根据当前位置和前三个位置的能量值,更新 d,同时更新 a、b、c 的值,将当前位置的能量值传递下去。最后返回的 d 就是从起始位置到终点位置的最小能量值。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务