x元素的最大连续子序列和

时间:2015-08-08 04:22:35

标签: sum max elements subsequence contiguous

所以我提出了一个问题,我已经查看并搜索过但没有找到答案......最好的(并说出最好的,我的意思是最快的)获得最大的连续后续序列的方法是什么? x元素的总和

想象一下,我有:A [] = {2,4,1,10,40,50,22,1,24,12,40,11,...}。 然后我问:

"What is the maximum contigous subsequence on array A with 3 elements?"

请想象一下这个数组超过100000个元素......有人能帮帮我吗?

感谢您的时间和帮助!

1 个答案:

答案 0 :(得分:0)

我用Google搜索并找到this

  

使用Divide and Conquer方法,我们可以在O(nLogn)时间内找到最大子阵列总和。以下是分而治之算法。

     

Kadane针对此问题的算法需要O(n)时间。因此,Kadane的算法优于Divide and Conquer方法

请参阅the code

Initialize:
    max_so_far = 0
    max_ending_here = 0

Loop for each element of the array
  (a) max_ending_here = max_ending_here + a[i]
  (b) if(max_ending_here < 0)
            max_ending_here = 0
  (c) if(max_so_far < max_ending_here)
            max_so_far = max_ending_here
return max_so_far