import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param energy int整型一维数组
     * @return int整型
     */
    public int maxEnergy (int[] energy) {
        int pre = 0, maxAns = energy[0];
        for (int x : energy) {
            pre = Math.max(pre + x, x); //计算当前子数组的最大和(包含当前元素)
            maxAns = Math.max(maxAns, pre); //更新全局最大和
        }
        return maxAns;

    }
}

本题知识点分析:

1.dp动态规划数组

2.API使用标准库Math.max取较大值

本题解题思路分析:

1.使用动态规划的思想来求解定数组energy中连续子数组的最大和。

2.通过遍历数组中的每个元素,并利用变量pre来记录当前子数组的最大和。

3.在遍过程中,如果当前元素上前面的子数组和比当前元素本更大,则更新pre为新子数组和;否则保持pre变。

4.同时,使用变量maxAns来记录全局最大和,即遍历过程中出现的最大子数组和。最后,返回maxAns作为结果。

本题使用编程语言:Java