-
发表于 2024.07.31
-
本质就是求解和大于等于
k * threshold
的子数组数目。使用一个定长为k
的滑动窗口,每次移动窗口时,只需要减去左边界的值,加上右边界的值,然后判断是否满足条件即可。class Solution: def numOfSubarrays(self, arr: List[int], k: int, threshold: int) -> int: cur_sum = sum(arr[i] for i in range(k)) l, r = 0, k # 左闭右开 threshold *= k ans = int(cur_sum >= threshold) while r < len(arr): cur_sum = cur_sum - arr[l] + arr[r] ans += (cur_sum >= threshold) l += 1 r += 1 return ans
- LC 题目链接
-