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

Posted niliuxiaocheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试题四十二:连续子数组的最大和,要求时间复杂度为 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               System.out.println(max);
 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          }

 

以上是关于面试题四十二:连续子数组的最大和,要求时间复杂度为 n的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer面试题 42. 连续子数组的最大和

编程之法:面试和算法心得(最大连续子数组和)

剑指offer面试题42. 连续子数组的最大和

剑指offer面试题42. 连续子数组的最大和

[剑指offer]面试题31:连续子数组的最大和

leetcode刷题四十一