Maximum Subarray Sum with One Deletion LeetCode solution in C++
1class Solution {2public:3int maximumSum(vector<int> &a) {4// Kadane's Algo5// DP time: O(N) space: O(N)6// dp[i][2]-->dp[i][0]->suf_del and dp[i][1]->suf_no_del78// Space optimized time: O(N) space: O(1)9int n = a.size();10int suf_del = 0;11int suf_no_del = a[0];12int ans = a[0];13for (int i = 1; i < n; i++) {14suf_del = max(suf_del + a[i], suf_no_del); // suf_del15suf_no_del = max(suf_no_del + a[i], a[i]); // suf_no_del16ans = max({ans, suf_del, suf_no_del});17}18return ans;19}20};