剑指 Offer: 传送门
- 确定双指针位置(都在起始位置、一个在起始一个在末尾)
- 确定终止条件(双指针重合、high 走到末尾)
- while 语句中的条件判断(双指针走向 =>同向走、向中间靠拢)
双指针间距 size,之后同步走,取出动态数组 temp 的最大值,push 进 res
终止条件:high 指针走到末尾
function maxInWindows(num, size) {
let res = [];
if (num == null || size < 1) {
return [];
}
let low = 0;
let high = low + size - 1;
while (high < num.length) {
let temp = num.slice(low, high + 1);
let maxNum = temp.reduce((prev, next) => {
return Math.max(prev, next);
});
res.push(maxNum);
temp = [];
low++;
high++;
}
return res;
}