题解 | #牛群的能量#
牛群的能量
https://www.nowcoder.com/practice/00f87ddcd18842d0824d487fd70a730e
知识点:动态规划
思路:
- 首先,定义一个名为
maxEnergy
的静态方法,该方法接受一个整数数组作为参数,并返回一个整数。 - 在方法的内部,初始化两个变量
cur
和res
,分别用于保存当前累积能量值和最大能量值。将res
的初始值设置为Integer.MIN_VALUE
,确保它可以被任何能量值更新。 - 使用
for
循环遍历数组中的每个元素。 - 在循环中,将当前元素的值添加到
cur
中,以计算累积能量。 - 使用
Math.max
函数将cur
和res
中的较大值更新到res
中,以保持最大能量值。 - 如果
cur
变为负数,则将cur
重置为0,因为负值对于最大能量值没有任何贡献。 - 循环结束后,返回
res
作为最大能量值。 - 在
main
方法中,创建一个示例用法,将一个能量数组作为参数传递给maxEnergy
方法,并打印出最大能量值。
编程语言:java
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param energy int整型一维数组 * @return int整型 */ public static int maxEnergy(int[] energy) { int n = energy.length; int cur = 0, res = Integer.MIN_VALUE; for (int i = 0; i < n; i++) { cur += energy[i]; res = Math.max(res, cur); if (cur < 0) cur = 0; } return res; } }