题名:最大值有边界的子数组的数目
难度:medium
题目描述如下:
代码如下:
class Solution {
public:
int numSubarrayBoundedMax(vector<int>& A, int L, int R) {
int ans = 0, big = -1, end = -1;
for(int i = 0; i < A.size(); i++){
if(A[i] > R){
big = i;
end = -1;
}
else if(A[i] >= L && A[i] <= R){
ans = ans + i - big;
end = i;
}
else if(A[i] < L){
if(end == -1) continue;
ans = ans + end - big;
}
}
return ans;
}
};