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 就是从起始位置到终点位置的最小能量值。