Skip to content

Commit ac5c639

Browse files
authored
Create maximum-subarray-sum-with-one-deletion.cpp
1 parent a8472d2 commit ac5c639

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// Time: O(n)
2+
// Space: O(1)
3+
4+
class Solution {
5+
public:
6+
int maximumSum(vector<int>& arr) {
7+
int result = numeric_limits<int>::min();
8+
int prev = numeric_limits<int>::min();
9+
int curr = numeric_limits<int>::min();
10+
for (const auto &x : arr) {
11+
curr = max(prev, (curr == numeric_limits<int>::min()) ? x : max(curr + x, x));
12+
result = max(result, curr);
13+
prev = (prev == numeric_limits<int>::min()) ? x : max(prev + x, x);
14+
}
15+
return result;
16+
}
17+
};

0 commit comments

Comments
 (0)