1186. 删除一次得到子数组最大和
题目链接:1186. 删除一次得到子数组最大和
代码如下:
class Solution
{
public:
int maximumSum(vector<int>& arr)
{
int res=INT_MIN;
vector<vector<int>> f(arr.size()+1,vector<int>(2,INT_MIN/2));// 除 2 防止负数相加溢出
for(int i=0;i<arr.size();i++)
{
f[i+1][0]=max(f[i][0],0)+arr[i];
f[i+1][1]=max(f[i][1]+arr[i],f[i][0]);
res=max(res,max(f[i+1][0],f[i+1][1]));
}
return res;
}
};