遍歷所有子串行,然後求出和最大的子串行
#include int main(void)}}
printf("%d %d %d",max,p,q);
return 0;
}
時間複雜度:o(n²)
時間複雜度過高,不建議使用這種方法,建議使用方案2的方法
假設對2 5 -8 1 3 4這個序列求和最大的字串a[0]>0則,後面的數加上a[0]"不虧";a[0]+a[1]>0,則後面的數加上a[0]+a[1]"不虧";而a[0]+a[1]+a[2]<0,則後買你的數加上a[0]+a[1]+a[2]會"虧",所以,如果和最大的子串行在後邊,則一定是從a[3]開始
#include int main(void)
if(sum<0)
}printf("max=%d,start=%d,end=%d\n",max,p,q);
return 0;
}
時間複雜度:o(n)
2018/6/12 18:09:34
求序列的最大子串行
看 程式設計珠璣 一書,講解求序列的最大子串行。問題 給定乙個實數序列x1,x2,xn 不必是正數 尋找乙個連續的子串行xi,x i 1 xj,使得其數值之和在所有連續子串行數值之和中是最大的。演算法1思路 比較所有連續序列數值的和,找到最大的。1.maxsofar 0 2.for i 0,n 3....
求最大遞減子串行問題
這是昨天晚上創新工場的一道筆試題 求乙個陣列的最長遞減子串行,例如的最長遞減子串行為 思路 這是很經典的乙個問題,用動態規劃解決。假設源陣列為a,定義乙個輔助陣列為b,b i 表示以a i 結尾的最長遞減序列的長度。舉個簡單的例子,如果a i 大於之前的所有元素,那麼b i 1。有了這個輔助陣列後,...
關於如何查詢陣列中和最大的子串行
關於如何查詢陣列中和最大的子串行 問題 給定乙個陣列,如,求該陣列中的和最大的子串行。思路 最簡單的方法,以每個元素作為起點,再考慮1 n所有的子串行元素個數的情況,這樣的複雜度就為o n n 之後我們討論了如何簡化陣列,比如相鄰的正數可以將其繫結,兩端的負數可以直接排除,最後陣列可以被簡化為兩端為...