import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param energy int整型一维数组
* @return int整型
*/
public int maxEnergy (int[] energy) {
// write code here
int n = energy.length;
int[] dp = new int[n];
dp[0] = energy[0];
int ans = dp[0];
for (int i = 1; i < n; i++) {
if (dp[i - 1] >= 0) {
dp[i] = energy[i] + dp[i - 1];
} else {
dp[i] = energy[i];
}
ans = Math.max(ans, dp[i]);
}
return ans;
}
}
编程语言是Java。
该题考察的知识点是动态规划。
代码的文字解释:
maxEnergy方法接受一个整型数组energy作为参数,并返回一个整数。- 首先获取数组的长度,并创建一个长度为
n的整型数组dp,用于记录最大能量值。 - 初始化
dp[0]为energy[0],并将其作为当前最大能量值。 - 从
i=1开始,使用循环计算dp[i]的值。若前一天的能量值大于等于0,则当前最大能量值为当前能量值与前一天最大能量值之和;否则,当前最大能量值为当前能量值。 - 在每次更新
dp[i]时,都更新最终的最大能量值ans为当前最大能量值与之前的最大能量值的较大值。 - 循环结束后,返回最终的最大能量值
ans。

京公网安备 11010502036488号