https://ac.nowcoder.com/acm/contest/5930/L
思路:尺取法 当年我还是太年轻。。。
这种题现在一看就知道是尺取法了
只要当前序列中最大与最小的数差值小于5 r就不断的向右移动
一旦大于5了就l++
同时每次r++都去更新答案
#include <cstdio>
#include <queue>
#include <cstring>
#include <string>
#include <iostream>
#include <algorithm>
#define inf 0x3f3f3f3f
using namespace std;
typedef long long ll;
int n,a[200005];
int i,j,l,r,ans=0,sum=1;
int main()
{
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
sort(a+1,a+1+n);
l=1;
r=1;
while(r<=n)
{
if(a[r]-a[l]>5)
{
l++;
}
else
{
ans=max(ans,r-l+1);
r++;
}
}
printf("%d\n",ans);
return 0;
}