您的位置:首页 > 职场人生

百度笔试题:绳子最多覆盖多少个点

2013-12-04 19:00 218 查看
版权所有。所有权利保留。

欢迎转载,转载时请注明出处:

http://blog.csdn.net/xiaofei_it/article/details/17123711

百度笔试题:

数轴上从左到右有n个点,a[0] ,a[1],…,a[n-1],给定一根长度为L绳子,求绳子最多覆盖其中几个点?

思路很清晰,直接上代码:

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n,l,a[1000];
while (cin>>n>>l)
{
for (int i=0;i<n;i++)
cin>>a[i];
sort(a,a+n);
int start=0,end=0,max=1;
while (true)
{
while (end<n&&a[end]-a[start]<=l)
end++;
if (end-start>max)
max=end-start;
if (end==n)
break;
end--;
do
{
start++;
}while (start<n&&a[end]-a[start]>=l);
if (start==n)
break;
}
cout<<max<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息