劍指offer之連續子陣列的最大和
阿新 • • 發佈:2021-02-18
技術標籤:八股文日記
題目描述
輸入一個整型陣列,數組裡有正數也有負數。陣列中的一個或連續多個整陣列成一個子陣列。求所有子陣列的和的最大值。要求時間複雜度為 O(n).
示例1
輸入
[1,-2,3,10,-4,7,2,-5]
返回值
18
說明
輸入的陣列為{1,-2,3,10,—4,7,2,一5},和最大的子陣列為{3,10,一4,7,2},因此輸出為該子陣列的和 18。
class Solution { public: int FindGreatestSumOfSubArray(vector<int> array) { int len=array.size(); vector<int> dp(len+1, 0); int rt=array[0]; for(int i=1; i<=len; i++) { dp[i] = max(array[i-1], array[i-1]+dp[i-1]); rt = max(rt, dp[i]); } return rt; } };