Reference http://www.ahathinking.com/archives/120.html
vararr = [2, 8,-2, 3, 5,-3, 2];//Traditional Method O (n^2)functionfun1 (arr) {varMaxsum =arr[0]; varMaxsumarr = []; for(vari=0; i< arr.length; i++){ varsum =Arr[i]; varSumarr =[Arr[i]]; for(j=i+1; j<arr.length; J + +) {sum= Sum +Arr[j]; Sumarr.push (Arr[j]); if(Sum >maxsum) {Maxsum=sum; Maxsumarr=[].concat (Sumarr); }}} console.log (Maxsum); Console.log (Maxsumarr);} FUN1 (arr); fun2 (arr);//The complexity is an O (n) method//It's weird at first, how could it be that the complexity is O (N) method?//think carefully if all the numbers are positive then and the largest contiguous subsequence is the array itself//so we're just trying to control the sum<0 situation.functionfun2 (arr) {varsum = arr[0]; varMaxsum = arr[0]; varSumarr = []; varMaxsumarr =[]; for(vari = 0; i< arr.length; i++ ){ if(Sum < 0 && arr[i]>0) {sum=Arr[i]; Sumarr=[Arr[i]]; }Else{sum+=Arr[i]; Sumarr.push (Arr[i]); if(Sum >maxsum) {Maxsum=sum; Maxsumarr=[].concat (Sumarr); }}} console.log (Maxsum); Console.log (Maxsumarr);}
The sum of the longest continuous sub-sequences in the algorithm surface test