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作为结果。