题目描述
自己解法
从数组的第k个元素开始遍历,每次减去开头元素,加上末尾元素,进行判断即可。时间复杂度 O ( n ) O(n) O(n),空间复杂度 O ( 1 ) O(1) O(1)。
class Solution:
def numOfSubarrays(self, arr: List[int], k: int, threshold: int) -> int:
sub = sum(arr[:k])
ans = 1 if sub >= threshold * k else 0
for i in range(k,len(arr)):
sub += arr[i] - arr[i-k]
if sub >= threshold * k:
ans += 1
return ans
题解区
没有找到更好的思路。