参考:
1.Leetcode1186[最大子数组变形]
class Solution { public: int maximumSum(vector<int>& arr) { int n = arr.size(); vector<vector<int>> dp(n, vector<int>(2, 0)); dp[0][0] = arr[0]; int res = arr[0]; for (int i = 1; i < n; i++) { dp[i][0] = max(arr[i], dp[i-1][0]+arr[i]); dp[i][1] = max(dp[i-1][1]+arr[i], dp[i-1][0]); res = max(res, max(dp[i][0], dp[i][1])); } return res; } };