数轴上从左到右有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; }
相关文章推荐
- 指针数组和数组指针
- 随笔二
- Ringo.js嵌入集成(二):使用Listener Filter替换官方的JsgiServlet实现
- hdu 三部曲1 Is the Information Reliable? 差分约束 bellman_ford算法
- json格式入门和总结
- Leetcode: Trapping Rain Water
- Pregel
- 使用 C++ 处理 JSON 数据交换格式
- 头文件与cpp文件为什么要分开写
- svm理论与实验之1
- android ListView详解
- C++函数模板重载学习笔记
- 设计模式之适配器模式
- hibernate之HQL之引用查询
- 徐海蛟:svm理论与实验之1
- 豆瓣FM电台Chrome扩展——下载
- OpenCL 和 CUDA 之间的区别
- hibernate之HQL之参数绑定
- Windows下的Objective-C集成开发环境(IDE)的搭建
- SSIS_数据流转换(派生列&聚合)