# 1186. Maximum Subarray Sum with One Deletion
###### tags: `Leetcode` `Medium` `Dynamic Programming`
Link: https://leetcode.com/problems/maximum-subarray-sum-with-one-deletion/
## 思路
这道题不能用sliding window 因为有负数

注意初始条件的设定
如果count1, count2, ans都初始设成0,那么如果整个array都是负数,例如[-1,-1,-1,-1]答案就会是0而不是-1
如果count1设成```Integer.MIN_VALUE```, 那么count1+num有可能变成Integer.MAX_VALUE, 答案就会变成Integer.MAX_VALUE
所以我们直接用arr[0]定义初始条件
## Code
```java=
class Solution {
public int maximumSum(int[] arr) {
int count1=arr[0], count2=0, ans=arr[0];
for(int i=1; i<arr.length; i++){
int num = arr[i];
int temp_count1 = count1;
count1 = Math.max(num, count1+num);
count2 = Math.max(count2+num, temp_count1);
ans = Math.max(ans, Math.max(count1, count2));
}
return ans;
}
}
```