给定一系列x轴的点坐标,例如 1,3,7,8,9,11这些坐标升序放在数组中,现在给一根绳子,长度为4,问绳子最多能覆盖的点数有多少,例如绳子放前面只能覆盖两个点,1,3,如果放后面能覆盖4个点。
来源:互联网 发布:北京和隆优化怎么样 编辑:程序博客网 时间:2024/05/19 07:10
/*** @param $data 待查找数组* @param $rLen 绳子长度*/function getRopeNum($data,$rLen) { $n = count($data); //当前最大个数 $max = 0; $i = 0; $cur = 0; while($i < $n - $max){ for($j = $cur;$j < $n -$i;$j++){ if($j == 0){ //len为0,无须比较 $cur++; continue; } if($data[$i+$j] - $data[$i] <= $rLen){ //小于rLen 当前数量加1 $cur++; } else{ if($cur > $max){ //调整当前最大个数 $max = $cur; } //寻找下一个,当前个数减1 $cur = $j-1; break; } } $i++; } return $max;}
1、首先抽象下题目,覆盖绳子,就是需要找一段长度小于绳子长度的区间,输出符合要求的最多元素个数的区间。
2、区间的长度就是区间上确界减去下确界
3、学习KMP思想,不做重复的比较
- 给定一系列x轴的点坐标,例如 1,3,7,8,9,11这些坐标升序放在数组中,现在给一根绳子,长度为4,问绳子最多能覆盖的点数有多少,例如绳子放前面只能覆盖两个点,1,3,如果放后面能覆盖4个点。
- 数轴上从左到右有n个点a[0],a[1]…,a[n-1],给定一根长度为L的绳子,求绳子最多能覆盖其中的几个点。要求算法复杂度为o(n)。
- 数轴上从左到右有n个点a[0],a[1]…,a[n-1],给定一根长度为L的绳子,求绳子最多能覆盖其中的几个点。要求算法复杂度为o(n)。
- 求绳子最多能覆盖的点
- [经典面试题][百度]数轴上从左到右有n各点a[0], a[1], ……,a[n -1],给定一根长度为L的绳子,求绳子最多能覆盖其中的几个点。
- [经典面试题][百度]数轴上从左到右有n各点a[0], a[1], ……,a[n -1],给定一根长度为L的绳子,求绳子最多能覆盖其中的几个点。
- 数轴上从左到右有n个点、a[0] a[1]……a[n-1]给定一根长度为l绳子、求绳子最多覆盖其中几个点
- 百度笔试题:绳子最多覆盖多少个点
- 绳子可以覆盖的最多点数
- 平面上n个点,半径为r的圆最多能覆盖几个点
- 坐标轴上从左到右依次的点为a[0]、a[1]、a[2]……a[n-1],设一根木棒的长度为L,求L最多能覆盖坐标轴的几个点?
- 绳子覆盖问题
- POJ1981Circle and Points【单位圆能覆盖的最多点】
- 智力题:烧一根不均匀的绳子,从头烧到尾是要1个小时.现在有若干条材质相同的绳子 问如何用烧绳的方法来计时一个小时15分钟.
- 百度地图给定坐标,用覆盖物标记坐标点
- 尺子最多覆盖多少点
- foxmail的收件箱中最多能放多少邮件呢?
- 绳子的长度
- 数据库的一些概念
- IOS中使用ASIHTTPRequest类库时出现的问题解决
- 写给Git初学者的7个建议
- JBoss 系列四十三:jBPM5示例之 Error Event
- Android DownloadManager 的使用
- 给定一系列x轴的点坐标,例如 1,3,7,8,9,11这些坐标升序放在数组中,现在给一根绳子,长度为4,问绳子最多能覆盖的点数有多少,例如绳子放前面只能覆盖两个点,1,3,如果放后面能覆盖4个点。
- 适配iOS7开发
- window下一台PC机器上安装多个mysql的方法
- 超链接做按钮
- Android中按键消息分发机制 上
- C++ 倒排索引的实现
- 陕西饮食之种类
- oracle 记录一下 活动商品退货
- 模2运算的原理