795. Number of Subarrays with Bounded Maximum
阿新 • • 發佈:2018-12-14
We are given an array A
of positive integers, and two positive integers L
and R
(L <= R
).
Return the number of (contiguous, non-empty) subarrays such that the value of the maximum array element in that subarray is at least L
and at most R
.
Example :Input: A = [2, 1, 4, 3] L = 2 R = 3 Output: 3 Explanation: There are three subarrays that meet the requirements: [2], [2, 1], [3].
Note:
- L, R and
A[i]
will be an integer in the range[0, 10^9]
. - The length of
A
will be in the range of[1, 50000]
.
程式如下所示:
class Solution { public int numSubarrayBoundedMax(int[] A, int L, int R) { int res = 0; int pre = -1, cur = -1; for (int i = 0; i < A.length; ++ i){ if (A[i] > R){ pre = cur = i; continue; } if (A[i] >= L){ cur = i; } res += cur - pre; } return res; } }