算法系列专题

133 阅读1分钟

持续更新一些经典算法题,收编中!!!

1.【数组】滑动窗口的最大值
/*
描述:给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。

返回滑动窗口中的最大值。

示例:

输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3
输出: [3,3,5,5,6,7]
*/
function getWinMaxValue(nums,k){
    var len = nums.length;
    var i = k;
    var res = [];
    for(;i<=len;i++){
        var tmp = nums.slice(i-k,i);
        var max = Math.max.apply(null,tmp);
        res.push(max);
    }
    return res;
}

var nums = [1,3,-1,-3,5,3,6,7];
var k = 3;
console.log(getWinMaxValue(nums,k))