Skip to content

Commit 83e46ac

Browse files
authored
Create 29 September Maximum subarray sum 2 (#900)
2 parents 718f46f + 5c73343 commit 83e46ac

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
class Solution {
2+
public:
3+
int maxSubarrSum(vector<int>& arr, int a, int b) {
4+
// code here
5+
int n=arr.size();
6+
7+
vector<long long> pref(n+1,0);
8+
9+
for(int i=1;i<=n;i++){
10+
pref[i]=pref[i-1]+arr[i-1];
11+
}
12+
13+
deque<int> dq;
14+
15+
int maxSum=INT_MIN;
16+
17+
for(int r=a;r<=n;r++){
18+
int l=r-a;
19+
20+
while (!dq.empty() && pref[dq.back()] >= pref[l]){
21+
dq.pop_back();
22+
}
23+
24+
dq.push_back(l);
25+
26+
while (!dq.empty() && dq.front() < r-b){
27+
dq.pop_front();
28+
}
29+
30+
maxSum=max(maxSum,(int)(pref[r]-pref[dq.front()]));
31+
}
32+
33+
return maxSum;
34+
35+
}
36+
};

0 commit comments

Comments
 (0)