C++ 代码
差分做法
#include<iostream>
#include<algorithm>
using namespace std;
//差分做法
const int N=1e4+10;
int s[2*N];
int n,k;
//差分初始化
void f(int l,int r,int c)
{
s[l]+=c;
s[r+1]-=c;
}
int main()
{
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
{
int m;scanf("%d",&m);
f(m,m+k,1);
}
int res=0;
for(int i=1;i<=N;i++)
{
s[i]+=s[i-1];
res=max(res,s[i]);
}
printf("%d",res);
}