所以我提出了一个问题,我已经查看并搜索过但没有找到答案......最好的(并说出最好的,我的意思是最快的)获得最大的连续后续序列的方法是什么? 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个元素......有人能帮帮我吗?
感谢您的时间和帮助!
答案 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