【Leetcode】795. Number of Subarrays with Bounded Maximum 795. 区间子数组个数

【Leetcode】795. Number of Subarrays with Bounded Maximum 795. 区间子数组个数_第1张图片

解法

就是 最大值不超过R的子数组里,也包括了最大值的子数组,以及最大值在[L,R]里的子数组,而这两部分是不相交的,所以利用互斥性,直接计算出【最大值不超过R的子数组】以及【最大值的子数组】的个数,然后相减即可

class Solution:
    def numSubarrayBoundedMax(self, A: List[int], L: int, R: int) -> int:
        ll, lr = -1, -1
        ans = 0
        for r,a in enumerate(A):
            if a>=L:
                ll = r
            if a>R:
                lr = r
            ans += ll-lr
        return ans

你可能感兴趣的:(Leetcode)