知识点
动态规划
解题思路
定义一个一维数组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])); } }