C++ O(N) Solution
Runtime: 52 ms, faster than 98.37% of C++ online submissions for Maximum Subarray Sum with One Deletion.\nMemory Usage: 23.6 MB, less than 68.67% of C++ online 
Runtime: 52 ms, faster than 98.37% of C++ online submissions for Maximum Subarray Sum with One Deletion.\nMemory Usage: 23.6 MB, less than 68.67% of C++ online submissions for Maximum Subarray Sum with One Deletion.\n\nWe can get maximum subarry sum with one deletion by comparing the maximum of two values\n    1. Maximum subarray sum considering all values ([Maximum Subarray problem](https://leetcode.com/problems/maximum-subarray/))\n    2. Maximum subarray sum deleting only one value\n\nAdd_Value holds the maximum subarray sum considering all values (Kadane\'s Algo)\nDel_Value holds the maximum subarray sum deleting only one value\n\nUpdate Del_Value in two way\n    1. Take current value => Del_Value + arr[i] (current value + max subarry sum deleting one value till current value)\n    2. Ignore current value => Add_Value (max subarry sum considering all value till current value)\n    And we take the max between these two types of values\n\n.\n.\n.\n```\nclass Solution {\npublic:\n    int maximumSum(vector<int>& arr) {\n        \n        int add_val = arr[0];\n        int del_val = 0;\n        int maxVal = arr[0];\n        \n        for(int i=1;i<arr.size();i++)\n        {\n            // take current value + previous del_val or previous add_val\n            del_val = max(del_val+arr[i],add_val);\n            \n            // max subarray sum considering all values\n            add_val = max(arr[i],arr[i]+add_val);\n            \n            // max between add_val and del_val\n            maxVal = max({maxVal,add_val,del_val});\n        }\n                \n        return maxVal;\n    }\n};\n```
['Dynamic Programming', 'C']