题目描述:输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为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; } }