题解 | #相差不超过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滑动窗口解题#
全部评论

相关推荐

09-01 11:31
门头沟学院 Java
buul:七牛云的吧,感觉想法是好的,但是大家没那么多时间弄他这个啊。。。不知道的还以为他是顶尖大厂呢还搞比赛抢hc,只能说应试者的痛苦考察方是无法理解的,他们只会想一出是一出
点赞 评论 收藏
分享
yubullym:双非目前 0 正式 offer,打算继续实习到 1 月准备春招了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务