We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent c91ee3f commit 18652a6Copy full SHA for 18652a6
C++/maximum-good-subarray-sum.cpp
@@ -0,0 +1,25 @@
1
+// Time: O(n)
2
+// Space: O(n)
3
+
4
+// prefix sum
5
+class Solution {
6
+public:
7
+ long long maximumSubarraySum(vector<int>& nums, int k) {
8
+ const auto NEG_INF = numeric_limits<int64_t>::min();
9
+ const auto POS_INF = numeric_limits<int64_t>::max();
10
11
+ unordered_map<int, int64_t> prefix;
12
+ int64_t result = NEG_INF, curr = 0;
13
+ for (const auto& x : nums) {
14
+ prefix[x] = min(prefix.count(x) ? prefix[x] : POS_INF, curr);
15
+ curr += x;
16
+ if (prefix.count(x - k)) {
17
+ result = max(result, curr - prefix[x - k]);
18
+ }
19
+ if (prefix.count(x + k)) {
20
+ result = max(result, curr - prefix[x + k]);
21
22
23
+ return result != NEG_INF ? result : 0;
24
25
+};
0 commit comments