最大連續子陣列和

2021-06-27 08:30:21 字數 595 閱讀 2989

題目描述:

輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。

求所有子陣列的和的最大值,要求時間複雜度為o(n)。

例如輸入的陣列為`1, -2, 3, 10, -4, 7, 2, -5`,和最大的子陣列為`3, 10, -4, 7, 2`,

因此輸出為該子陣列的和18。

思路:採用貪婪法求解即可

#include #include /*題目描述:

輸入乙個整形陣列,陣列裡有正數也有負數。

陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。

求所有子陣列的和的最大值,要求時間複雜度為o(n)。

思路:採用貪婪法即可

*/int getsubmaxsum(int *a, int n)

if (tmp < 0)

} return sum;

}int main()

; int sum = getsubmaxsum(a, 8);

printf("%d\n", sum);

return 0;

}

最大連續子陣列和

輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值,要求時間複雜度為o n 例如輸入的陣列為1,2,3,10,4,7,2,5,和最大的子陣列為3,10,4,7,2,因此輸出為該子陣列的和18。第乙個想法肯定就是如果能夠把陣...

最大連續子陣列和

給定乙個整數陣列,元素的值有正有負。定義 連續子陣列和 為連續幾個陣列的元素的和,求最大的連續子陣列和。已知這個值在int能夠表示的範圍內。無腦暴力做就是列舉所有的子陣列,o n 2 然後對於每個子陣列求和,自然就找出最大的了,複雜度總共是o n 3 能否優化?想想 做了重複多餘的事情了?沒錯,就是...

最大連續子陣列和

問題是這樣的 乙個整數陣列中的元素有正有負,在該陣列中找出乙個連續子陣列,要求該連續子陣列中各元素的和最大,這個連續子陣列便被稱作最大連續子陣列。比如陣列的最大連續子陣列為,最大連續子陣列的和為5 2 1 2 8。下面按照時間複雜度逐步優化的順序依次給出這三種演算法。該方法的思想非常簡單,先找出從第...