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

 #include <iostream>
using namespace std; int maxCover(int* a, int n, int l)
{
int maxCover = ;
int begin = ;
int end = ;
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[] = {,,,,,};
cout<<"最大的覆盖个数:"<<maxCover(a,,)<<endl;
return ;
}
上一篇:剑指Offer面试题29(java版):数组中出现次数超过一半的数字


下一篇:HDU 2860 并查集