题目描述:输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。
实现语言:Java
public class Solution {
public int FindGreatestSumOfSubArray(int[] array) {
int size=array.length;
if(size==0||array==null){
return -1;
}
int maxSum=array[0];
for(int i=0;i<size;++i){
int curSum=0;
for(int j=i;j<size;++j){
curSum+=array[j];
if(curSum>maxSum){
maxSum=curSum;
}
}
}
return maxSum;
}
}
实现语言:Java
public class Solution {
public int FindGreatestSumOfSubArray(int[] array) {
int size=array.length;
if(size==0||array==null){
return -1;
}
int maxSum=array[0];
int curSum=array[0];
for(int i=1;i<size;++i){
if(curSum<=0){
curSum=array[i];
}else{
curSum+=array[i];
}
if(curSum>maxSum){
maxSum=curSum;
}
}
return maxSum;
}
}