/*
dp[i]:以i为结尾的数组最大和
dp[i]:初始化为a[i].
dp[i] = max(dp[i], dp[i-1] + a[i]);
结果为遍历所有dp,寻找以i为结尾的最大值
*/
class Solution {
public:
int maxsumofSubarray(vector<int>& arr) {
vector<int> dp(arr);
for(int i = 0;i < arr.size(); i++){
dp[i] = max(dp[i], dp[i-1] + arr[i]);
}
int ans = 0;
for(int i = 0;i < arr.size(); i++){
ans = max(ans, dp[i]);
}
return ans;
}
};
京公网安备 11010502036488号