固定窗口:最大平均值与子数组和
一、面试常考点
1. 固定窗口优化
从 O(nk) 到 O(n),每次仅增一减一。
2. 容易错点
初始化首个窗口、更新顺序。
二、细节介绍
1. 窗口和
sum += arr[right] - arr[right-k]。
2. 结果更新
每次窗口成型后更新最大值。
三、示例代码
function maxSubarraySumK(nums, k) {
let sum = 0
for (let i = 0; i < k; i++) sum += nums[i]
let ans = sum
for (let i = k; i < nums.length; i++) {
sum += nums[i] - nums[i - k]
ans = Math.max(ans, sum)
}
return ans
}
四、常用应用场景
1. 指标平滑
固定时间窗内统计。
2. 日志批次分析
每 N 条数据求局部最值。