文章目录
- 题目描述
- 题解思路
- 题解代码
- 题目链接
题目描述
题解思路
长度为k且平均值大于等于阈值的子数组数目 等于 长度为k且总和大于等于k * 阈值的子数组数目
我们遍历长度为k的窗口,我们只需要记录窗口内的总和即可,遍历过程中记录总和大于等于k * 阈值的子数组数目
题解代码
impl Solution {pub fn num_of_subarrays(arr: Vec<i32>, k: i32, threshold: i32) -> i32 { let threshold = k * threshold;let mut ans = 0;let mut sum = 0;for i in 0..k as usize {sum += arr[i];}if sum >= threshold {ans += 1;}for i in k as usize..arr.len() {sum += arr[i] - arr[i - k as usize];if sum >= threshold {ans += 1;}}ans}
}
题目链接
https://leetcode.cn/problems/number-of-sub-arrays-of-size-k-and-average-greater-than-or-equal-to-threshold/