求序列中和最大的的子串行

2021-08-20 16:43:34 字數 597 閱讀 9269

遍歷所有子串行,然後求出和最大的子串行

#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 之後我們討論了如何簡化陣列,比如相鄰的正數可以將其繫結,兩端的負數可以直接排除,最後陣列可以被簡化為兩端為...