连续子数组的最大和
题目描述
输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为 O(n).
代码
import java.util.*;
public class Solution {
public int FindGreatestSumOfSubArray(int[] array) {
if(array==null || array.length<1) return -1;
int max = array[0];
int temp = array[0];
for(int i=1; i<array.length; i++){
//temp+=array[i];
// if( temp < 0) temp=array[i];
temp = Math.max(temp+array[i], array[i]);
max = Math.max(max, temp);
}
return max;
}
}