题解 | #牛群的能量# java

牛群的能量

https://www.nowcoder.com/practice/00f87ddcd18842d0824d487fd70a730e

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
全部评论

相关推荐

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