求子陣列的最大和

2021-07-22 01:51:21 字數 619 閱讀 7173

題目

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

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

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

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

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

解答

儲存當前的最大和max以及當前累加的和sum,從左到右遍歷一次陣列,累加到sum,當sum>max時,max置為sum,當sum<0時,sum置為0。

最後的max就是子陣列的最大和。

原始碼

#include#includeusing namespace std;

int maxsubarr(vector&vec)

return max;

}int main()

{ vectornums;

int integer;

while(cin>>integer)

nums.push_back(integer);

int maxsum = maxsubarr(nums);

cout<

求子陣列最大和

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

求子陣列的最大和

題目 輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。要求時間複雜度為o n 本題最初為2005年浙江大學計算機系的考研題的最後一道程式設計題,在2006年裡包括google在內的很多知名公司都把本題當作面試題。由於本...

求子陣列的最大和

陣列 一 題目 感謝 提供的題目 求子陣列的最大和 輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。要求時間複雜度為o n 例如輸入的陣列為1,2,3,10,4,7,2,5,和最大的子陣列為3,10,4,7,2,因此輸...