Maximum Score of a Good Subarray LeetCode solution in C++

1
class Solution {
2
public:
3
int maximumScore(vector<int> &nums, int k) {
4
nums.push_back(0);
5
stack<int> st;
6
int n = nums.size(), res = 0;
7
for (int i = 0; i < n; i++) {
8
while (!st.empty() && nums[st.top()] >= nums[i]) {
9
int height = nums[st.top()];
10
st.pop();
11
int left = st.empty() ? -1 : st.top();
12
if (k < i && k > left) res = max(height * (i - left - 1), res);
13
}
14
st.push(i);
15
}
16
return res;
17
}
18
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0