面试题四十二:连续子数组的最大和,要求时间复杂度为 n

 

方法一:举例分析数组的规律,累加数组逐步保存最大值;累加中和<0,则遗弃前面的累加和;重新开始;

 1  int FindMaxArray(int [] A) {
 2               if(A==null||A.length<=0)
 3                   return 0;
 4               int sum=0;
 5               int max=0x80000000;//先定义为极小值-2147483648
 6               
 7               for(int i=0;i<A.length;++i) {
 8                   if(sum<=0) sum=A[i];
 9                   else sum+=A[i];
10                   if(sum>max) max=sum;            
11               }
12               return max;       
13          }

 

posted @ 2020-03-29 16:30  浪波激泥  阅读(207)  评论(0编辑  收藏  举报