mirror of
https://gitlab.com/mfocko/LeetCode.git
synced 2024-11-14 18:07:32 +01:00
29 lines
631 B
C#
29 lines
631 B
C#
|
public class Solution {
|
||
|
public long CountSubarrays(int[] nums, int minK, int maxK) {
|
||
|
long count = 0;
|
||
|
var (minIdx, maxIdx) = (-1, -1);
|
||
|
|
||
|
for (int i = 0, j = 0; j < nums.Length; ++j) {
|
||
|
var x = nums[j];
|
||
|
|
||
|
// is not bounded
|
||
|
if (x < minK || x > maxK) {
|
||
|
i = j + 1;
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
if (x == minK) {
|
||
|
minIdx = j;
|
||
|
}
|
||
|
|
||
|
if (x == maxK) {
|
||
|
maxIdx = j;
|
||
|
}
|
||
|
|
||
|
count += Math.Max(0, Math.Min(minIdx, maxIdx) - i + 1);
|
||
|
}
|
||
|
|
||
|
return count;
|
||
|
}
|
||
|
}
|