题解 | #相差不超过k的最多数#

相差不超过k的最多数

https://www.nowcoder.com/practice/562630ca90ac40ce89443c91060574c6

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    let [n,k]=(await readline()).split(" ").map(it=>parseInt(it));
	//有时候会读取到后面的空格,所以要特别处理
    let arr=handle((await readline()).split(" "))
	//从小到大排序
    arr.sort((a,b)=>a-b);
    let max=0
	//滑动窗口的过程
    for(let l=0,r=0;r<arr.length;r++){
        while(arr[r]-arr[l]>k){
            l++
        }
        if(r-l+1>max){
            max=r-l+1
        }
    }
    console.log(max)
}()

//这个函数主要作用就是剔除空字符串并构造新的数字字符串
function handle(arr){
    let new_arr=[]
    for(let str of arr){
        if(str!=""){
            new_arr.push(parseInt(str))
        }
    }
    return new_arr
}

#js滑动窗口解题#
全部评论

相关推荐

要冲外企的祖国花朵很温柔:今年有签约礼盒嘛
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务