文章目录
题意
思路
单调栈
代码
C++
class Solution {
public:
long long bowlSubarrays(vector<int>& nums) {
int ans = 0;
stack<int> s;
for (int i = 0; i < nums.size(); i++) {
const int x = nums[i];
while (!s.empty() && nums[s.top()] < x) {
if (i - s.top() > 1)
ans ++;
s.pop();
}
if (!s.empty() && i - s.top() > 1)
ans++;
s.push(i);
}
return ans;
}
};