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