题解 | #滑动窗口的最大值#
滑动窗口的最大值
https://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param num int整型一维数组
* @param size int整型
* @return int整型一维数组
*/
function maxInWindows( num , size ) {
// 根据题目给出来写边界判断
if (num.length < size || !size) {
return [];
}
// 定义一个栈来存每一个可视窗口的内容;
let stackArr = [];
// 此处用来返回最终的每个窗口的最大值
let result = [];
// first loop,利用数组的slice方法来截取每个窗口的可视内容,放到我们刚创建的stackArr栈里
for (let i = 0; i < num.length - size + 1; i++) {
stackArr.push(num.slice(i, i+size))
}
// 遍历stackArr,利用math.max来求出每个可视窗口的最大值,push到我们结果里
for(let j = 0; j < stackArr.length; j++) {
result.push(Math.max.apply(null, stackArr[j]))
}
return result;
}
module.exports = {
maxInWindows : maxInWindows
};

叮咚买菜工作强度 246人发布