题目简介:
给你一个整数数组 nums
和两个整数:left
及 right
。找出 nums
中连续、非空且其中最大元素在范围 [left, right]
内的子数组,并返回满足条件的子数组的个数。
生成的测试用例保证结果符合 32-bit 整数范围。
示例 1:
1 | 输入:nums = [2,1,4,3], left = 2, right = 3 |
提示:
1 <= nums.length <= 10^5
0 <= nums[i] <= 10^9
0 <= left <= right <= 10^9
思路:
我们构建一个函数solve(num)
,来求数组中 最大值小于等于num
的连续子数组个数。
那么在区间[left, right]
的结果便是solve(right) - solve(left - 1)
。
代码如下:
1 | class Solution { |