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

来源:互联网 发布:sql基础语法 编辑:程序博客网 时间:2024/04/30 07:49

版权所有。所有权利保留。

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

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;}


原创粉丝点击