題目
輸入乙個整形陣列,裡有正也負。
陣列中連續的乙個或多整成子,每都有和。
求所有子陣列的和最大值。要時間複雜度為 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,因此輸...