题解 | #小红关鸡#

小红关鸡

https://ac.nowcoder.com/acm/problem/269221

首先用双指针,算法去做(无法用滑动区间,因为区间长度不固定),然后保留4位小数即可

using namespace std;
#define int long long
const int N=2e5+10;
int a[N];
vector<int>q;

signed main()
{
	int n,k;
	cin>>n>>k;
	int ans=0;
	for(int i=1;i<=n;i++)
	{
		int t;
		cin>>t;
		q.push_back(t);		
	}
	sort(q.begin(),q.end());
	int num=0;
	for(int i=0,j=0;i<n;i++)
	{
		
		while(q[i]-q[j]>k)//这里注意判断条件,不用太死板j<i是必然的
		{
			j++;
		}
			num=max(num,i-j+1);
	}
	
	printf("%.4lf",(double)num/n);
	return 0;
# }
全部评论

相关推荐

09-29 00:03
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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