指定滑动窗口大小,求最大和
例如
// 滑动窗口 size = 3
[2,3,4,2,6,2,5,1]
// 2 + 3 + 4 9
// 3,4,2 9
// 4,2,6 12
// 2,6,2 10
// 6,2,5 13
// 2,5,1 8
// 最大值是 13
- 先求出从 0 下标到 size - 1 小标的和
- 循环遍历 滑动窗口
sum -= num[i - 1]sum += num[i + size - 1] - 进行最大值比较 max 即可
function maxInWindows(num, size) {
// write code here
let sum = getSum(num, size);
let max = sum;
for (let i = 1; i <= num.length - size; i++) {
sum -= num[i - 1];
sum += num[i + size - 1];
if (sum > max) {
max = sum;
}
}
return max;
}
function getSum(num, size) {
let sum = 0;
while (size !== 0) {
size--;
sum += num[size];
}
return sum;
}