题目:
给你一个整数数组 arr
和两个整数 k
和 threshold
。
请你返回长度为 k
且平均值大于等于 threshold
的子数组数目。
思路:定长滑动窗口 入 更新 出
代码:
class Solution {
public int numOfSubarrays(int[] arr, int k, int threshold) {
int n = arr.length;
int ans = 0;
int sum = 0;
for (int i = 0; i < n; i++) {
sum += arr[i];
if (i < k - 1)
continue;
ans += sum / k >= threshold ? 1 : 0;
sum -= arr[i - k + 1];
}
return ans;
}
}
性能:
时间复杂度o(n)
空间复杂度o(1)