您的位置:首页 > 其它

数轴上从左到右有n个点a[0],a[1]…,a[n-1],给定一根长度为L的绳子,求绳子最多能覆盖其中的几个点。要求算法复杂度为o(n)。

2013-10-05 12:10 288 查看
#include <iostream>
using namespace std;

int maxCover(int* a, int n, int l)
{
int maxCover = 1;
int begin = 0;
int end = 1;
while(end < n)
{
if(a[end] - a[begin] > l)
{
maxCover = (end - begin) > maxCover?(end - begin):maxCover;
begin++;
}
else
end++;
}
return maxCover;
}

int main()
{
int a[6] = {0,1,3,6,8,10};
cout<<"最大的覆盖个数:"<<maxCover(a,6,8)<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: