一道百度的笔试题

koly_j 2011-09-27 03:53:05
题目:在一个一维的坐标轴上,有很多线段,求重合长度最大的两条线段。

本人菜鸟,请大侠们给点思路,时间复杂度是kn的算法
...全文
394 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
koly_j 2011-09-29
  • 打赏
  • 举报
回复
您的意思是把线段做成树形么?能不能具体点?

[Quote=引用 12 楼 ol_lo 的回复:]
线段树吧
[/Quote]
koly_j 2011-09-29
  • 打赏
  • 举报
回复
第二条不是很明白,判断有没有重合的时间复杂度,也是n平方了吧

[Quote=引用 14 楼 qyee16 的回复:]
不知道这个想法可行(否):

1、既然知道了线段的个数,和坐标点,可从做到右给每一个线段编号1、2、、、、k
2、从左到右扫描,然后选择单位步长,扫描,如果有重合,则保存 俩个线段的编号,并记录重合值加1
出现新的重合,则保存新的重合,重合结束,则不加。扫描直到最后一个线段的结束
3、从左到右扫描,每个编号的线段重合都有最大值,找到每个线段与其重合的重合值中的最大值
4、最后一次扫……
[/Quote]
Brdnl 2011-09-29
  • 打赏
  • 举报
回复
对线段左端点基数排序(O(n))。
定义一个指针p,并令其指向第0个(即最左边的)线段。
定义变量l,并赋为0。
然后依次对每一个线段执行下过程:
比较l与此线段和p指向的线段相交部分的长度;若l较小则被赋为相交长度;
若此线段的右端点比X靠右,则X指向此线段。
最后输出l。
ANT2AUNTH 2011-09-29
  • 打赏
  • 举报
回复
新手路过
qq120848369 2011-09-29
  • 打赏
  • 举报
回复
线段树已经印象不深了,我当时写的是按起点排序,然后扫一遍,对于每一个线段L,upper_bound获得起点在L终点左边的所有线段,计算它们与L的重合长度.
wdxy520 2011-09-29
  • 打赏
  • 举报
回复
mark
yxriyin 2011-09-29
  • 打赏
  • 举报
回复
感觉方法有
但复杂度明显要n2啊
百度牛逼的一塌糊涂啊
追求执着 2011-09-29
  • 打赏
  • 举报
回复
一个for循环,从开始进行比较记录重合最长的,有则替换,无则继续比较
不知道对不对,还是要写程序?那好多未知哦!
Qyee16 2011-09-27
  • 打赏
  • 举报
回复
不知道这个想法可行(否):

1、既然知道了线段的个数,和坐标点,可从做到右给每一个线段编号1、2、、、、k
2、从左到右扫描,然后选择单位步长,扫描,如果有重合,则保存 俩个线段的编号,并记录重合值加1
出现新的重合,则保存新的重合,重合结束,则不加。扫描直到最后一个线段的结束
3、从左到右扫描,每个编号的线段重合都有最大值,找到每个线段与其重合的重合值中的最大值
4、最后一次扫描,在每个线段的最大重合值中,找到最大值,因为保存的有线段编号,就可得到了
tr3301103 2011-09-27
  • 打赏
  • 举报
回复
等牛人求解
Ol_lO 2011-09-27
  • 打赏
  • 举报
回复
线段树吧
快乐的小菜鸟 2011-09-27
  • 打赏
  • 举报
回复
Mark 等待答案
SammyLan 2011-09-27
  • 打赏
  • 举报
回复
mark
koly_j 2011-09-27
  • 打赏
  • 举报
回复
就是这个意思,n是线段的总数,k是一个常数

[Quote=引用 4 楼 tsx86 的回复:]
引用 2 楼 racebug2010 的回复:
k是什么,n是什么。

就是设计时间复杂度是O(k*n)的算法。不知道这个区间用什么表示好呢?向牛人请教了
[/Quote]
koly_j 2011-09-27
  • 打赏
  • 举报
回复
2个for循环时间复杂度就是n平方了吧

[Quote=引用 5 楼 studycbc 的回复:]
1、找出重合的线 点是否在线上,这个数学公式网上有
2、计算长度
3、输出重合最长的2条线的坐标

2个for循环就可以出来了
[/Quote]
koly_j 2011-09-27
  • 打赏
  • 举报
回复
2个for循环时间复杂度就是n平方了吧

[Quote=引用 5 楼 studycbc 的回复:]
1、找出重合的线 点是否在线上,这个数学公式网上有
2、计算长度
3、输出重合最长的2条线的坐标

2个for循环就可以出来了
[/Quote]
堕落的乞讨者 2011-09-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 studycbc 的回复:]
1、找出重合的线 点是否在线上,这个数学公式网上有
2、计算长度
3、输出重合最长的2条线的坐标

2个for循环就可以出来了
[/Quote]
能说下怎么表示线段吗?谢谢
七擒关羽 2011-09-27
  • 打赏
  • 举报
回复
1、找出重合的线 点是否在线上,这个数学公式网上有
2、计算长度
3、输出重合最长的2条线的坐标

2个for循环就可以出来了
堕落的乞讨者 2011-09-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 racebug2010 的回复:]
k是什么,n是什么。
[/Quote]
就是设计时间复杂度是O(k*n)的算法。不知道这个区间用什么表示好呢?向牛人请教了
兆帅 2011-09-27
  • 打赏
  • 举报
回复
求解~~
加载更多回复(2)
企业公司软件测试面试笔试题集合 软件测试面试题 (测试基础).doc 01_企业面试试卷(综合).doc 01_企业面试试卷(综合)_参考答案.doc 04_企业面试试卷(测试基础).doc 04_企业面试试卷(测试基础)_参考答案.doc 500强公司面试的经典正确与错误回答对比!!! 看看你的弱点.doc C面试题.txt Java初学者都必须知道的六大问题.doc 百度笔试题.txt 北京博彦科技笔试+面试.doc 北京大学计算机科学技术研究所.doc 波尔世通的笔试+面试.doc 测试人员面试题.doc 测试题.doc 常见的测试题(转贴).doc 传视数码公司的面试题.doc 汉端笔试题(7页).doc 合力金桥的笔试题.doc 华为面试题.doc 经典逻辑题.ppt 联合网视面试题.doc 美国英网软件公司题目.doc 面试考题(腾讯,招行等等).txt 某公司的面试试题.doc 奇虎面试题.doc 千像互动的笔试.doc 清华同方开发的面试题 (有兴趣的看一下了 !).doc 缺陷的等级划分,一个经常被问到的问题.doc 软件测试工程师笔试试题(大集合).doc 软件测试工程师测试试题大集合(二)包括答案.doc 软件测试工程师试题发布版.doc 软件测试试题.doc 软件评测复习知识点(小颖).doc 软通动力面试笔答.doc 瑞星笔试题(15道).doc 神州泰岳测试试题(笔试)转贴.doc 时力科技面试题.doc 瓦瑟笔试题(限男性).doc 喜安科 面试题.doc 性能计算公式.txt 亚控科技比试题.doc 一道测试notepad笔试题.doc 一道数据库的笔试题目.doc 一个外包测试公司的笔试题!.doc 一家通讯公司的面试题目.doc 英文自我介绍大全.doc 英语面试.doc 英语面试题.doc 有意思的逻辑题.doc 中软的面试题(转贴).doc

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧