刷题记录-剑指offer42:连续子数组的最大和
给一个数组,返回它的最大连续子序列的和
如果某个序列的和小于0,那个这个序列肯定是拖后腿的,不应该被包含进去,直接从数组里的下一位开始看
public class Solution { public int FindGreatestSumOfSubArray(int[] array) { if(array == null || array.length == 0) return 0; int accSum = 0; int maxSum = Integer.MIN_VALUE; // 这里的初始化不能用0,因为如果数组里所有元素都小于0,会产生错误答案 for(int num : array){ accSum += num; maxSum = Math.max(accSum, maxSum); if(accSum<0){ accSum = 0; } } return maxSum; } }
浙公网安备 33010602011771号