微软的一道比较难的算法面试题

pkukevin 2009-01-17 05:25:38
加精
平面上N个点,没两个点都确定一条直线,求出斜率最大的那条直线所通过的两个点(斜率不存在的情况不考虑)。时间效率越高越好
...全文
9705 240 打赏 收藏 转发到动态 举报
写回复
用AI写文章
240 条回复
切换为时间正序
请发表友善的回复…
发表回复
DreamMakers 2012-11-01
  • 打赏
  • 举报
回复
本人有一种想法,定义一个变量存储当前两个点的斜率,定义两个变量分别存储两个点的下标,首先将这些点按照坐标X进行排序,然后依次判断第i个点和第i+1个点的斜率,如果斜率比之前的斜率小,则不做任何处理,如果大于或者等于之前的斜率,则更新斜率值,和两个点的下标值,具体来说就是用更改存储两个点中X坐标较小的那个点的X下标,让其下标减1,然后计算下标减1后的那个点与原来两个点中X较大的那个点的斜率,用新的斜率代替原来的斜率值。
蜡笔小新啦 2012-10-24
  • 打赏
  • 举报
回复
一楼的是正确的。
kingjo002 2012-10-09
  • 打赏
  • 举报
回复
x值相同的点 斜率为1 不就是最大了嘛
[Quote=引用 4 楼 的回复:]
思想没错,具体的话要处理一下x值相同的点
[/Quote]
szhyu 2012-05-16
  • 打赏
  • 举报
回复
不考虑x重合 不考虑负斜率那些特殊情况
1楼的想法是对的吧, 最大斜率一定出现在相邻的2个x里
真不知道那些例子怎么举出来的
索隆 2012-05-07
  • 打赏
  • 举报
回复
斜率=(y2-y1)/(x2-x1);这个大家要先明白。有正负和不存在3中情况。
我的设计是:
逐个点找斜率,然后再找最大值。
N个点先放进一个数组,开始遍历。
1,第一个点和其他点最多有n-1条线,也就是最多n-1个斜率,要出去x2-x1==0的斜率,第一个点的所有
斜率放入一个list(是个容器就行)
2,把N个点的数组除去刚才的那个点。这样问题还和开始一样,只不过变成了N-1个点而已,
你可以用递归写,在这个数组里那第一个点(其实就是原先数组中第二个点)和其他点组合最多
n-2条斜率。
3,重复12步骤,每次去除一个点,这样把所有合法的斜率找出来放到一个容器中,然后
就不用说了吧,找出这个容器中最大值即可。

找所有斜率复杂度n的平方,找最大值复杂度n的平方,总共复杂度n的平方
fylsh2012 2012-03-14
  • 打赏
  • 举报
回复
对于出现x相同的点排序问题,我觉得排序时把y大小倒排序。
wy92_c_sdn 2012-02-01
  • 打赏
  • 举报
回复
mark 学习学习~
shengbo0123 2011-06-18
  • 打赏
  • 举报
回复
一楼厉害,让我看这么久才搞明白
shengbo0123 2011-06-18
  • 打赏
  • 举报
回复
呵呵[Quote=引用 73 楼 highfly2008 的回复:]
学习
[/Quote]
limitfan 2011-05-01
  • 打赏
  • 举报
回复
按照一楼的排序
0 0
0 1
0 2
1 2
这个四个点最大可不是相邻的。
孤独小剑 2011-04-28
  • 打赏
  • 举报
回复
一楼正解,感觉这个斜率像三角形,当然无论多少点都可以分解成这样的三角形,斜率最大的线肯定是在相邻的点之间的
孤独小剑 2011-04-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hotfree 的回复:]

弱弱的问一句:此题有解吗?
参考系是什么没说呀,没有参考系,何来的斜率?
[/Quote]

他说的那个点其实就已经包含了坐标的意思了,不然你怎么表示点和点的相对关系呢
j563909373 2011-04-19
  • 打赏
  • 举报
回复
[Quote=引用 228 楼 njusthsy 的回复:]

终于出现明白的人了,那个76L什么人啊真是,受不了那种人。1L除了没考虑到x坐标相同的情况,就是正确的
[/Quote]
楼上的朋友,x坐标相同的时候也是正确的,这个时候不就是一个点有两个相邻点,对应着两个不同的斜率吗,也是可以分出大小的。
njusthsy 2011-04-06
  • 打赏
  • 举报
回复
终于出现明白的人了,那个76L什么人啊真是,受不了那种人。1L除了没考虑到x坐标相同的情况,就是正确的
[Quote=引用 218 楼 leonardwang 的回复:]
哎。。。第一眼感觉1楼是错的 后来才知道了。。。1楼很精辟
其实说1楼错的不是斜率搞不清楚 A,B,C三点如果AC斜率大于AB,那么BC的斜率肯定大于AC,而BC在接下来就会算到 要动态考虑问题。。。。
[/Quote]
njusthsy 2011-04-06
  • 打赏
  • 举报
回复
你再仔细理解下1L那位取max的意思!!!神马叫取max你懂不懂!!不解释,咆哮下
[Quote=引用 76 楼 dearmite 的回复:]
一楼的假定两个X最近的产生出来的斜率最大,
这一点确实错了。

如果有三个点分别是 (0,0) (1,1)和(2,3)
如果只是max(斜率(point[i],point[i+1])) 0 <=i <n-2。 的话
可以看到(0,0)(2,3)的斜率最大, 比(0,0)(1,1)和(1,1)(2,3)都大。搜易这个和相邻的x点做斜率还不够.
这个想法很好,
但是例子举的有点偏差。
……
[/Quote]
anxiaguan 2011-01-05
  • 打赏
  • 举报
回复
受教了,
Codefans_Fan 2010-12-23
  • 打赏
  • 举报
回复
不错。。。有意思
Layout 2010-10-29
  • 打赏
  • 举报
回复
关注,微软的题目很强嘛
bingshanzhiling 2010-10-28
  • 打赏
  • 举报
回复
真是龙蛇混杂。。。
bingshanzhiling 2010-10-28
  • 打赏
  • 举报
回复
弱问这个算不算是典型的分治算法???
加载更多回复(217)
精选微软等数据结构+算法面试100题答案修正V0.2版本 -------------------- 此份答案是针对,前期已公布的最初的那份答案的,初步校正与修正。 http://download.csdn.net/source/2796735(V0.1版) 相比第一份V0.1版答案,此份答案V0.2版更加准确,亦修正了不少题目的答案。 此份20题的答案,思路更加清晰易懂,简介明了。 请享用。July、2010/11/06。 其它资源,下载地址: 1.[最新答案V0.3版]微软等数据结构+算法面试100题[第21-40题答案] http://download.csdn.net/source/2832862 2.[第1题-60题汇总]微软等数据结构+算法面试100题 http://download.csdn.net/source/2826690 3.[答案V0.2版]精选微软数据结构+算法面试100题[前20题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 4.[答案V0.1版]精选微软数据结构+算法面试100题[前25题] http://download.csdn.net/source/2796735 5.[第二部分]精选微软等公司结构+算法面试100题[前41-60题]: http://download.csdn.net/source/2811703 6.[第一部分]精选微软等公司数据结构+算法经典面试100题[1-40题] http://download.csdn.net/source/2778852 更多资源,下载地址: http://v_july_v.download.csdn.net/ ------------------------------------------------------ 各位,若对以上100题任何一道,或对已上传的任何一题的答案, 有任何问题,请把你的思路、想法,回复到此帖子上, 微软等100题系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html
此为我个人搜集整理的, 精选微软等公司数据结构和算法的面试100题[前41-60题], 此绝对值得你下载收藏。 ----------------------------- 网友yui评论,真是够多的了,从此,不用再看其它面试题.... 一句话,请享用。 July、2010/11.05. ----------------------------------------------- 其它资源,下载地址: [最新整理公布][汇总II]微软等数据结构+算法面试100题[第1-80题] http://download.csdn.net/source/2846055 1.[最新答案V0.3版]微软等数据结构+算法面试100题[第21-40题答案] http://download.csdn.net/source/2832862 2.[第1题-60题汇总]微软等数据结构+算法面试100题 http://download.csdn.net/source/2826690 3.[答案V0.2版]精选微软数据结构+算法面试100题[前20题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 4.[答案V0.1版]精选微软数据结构+算法面试100题[前25题] http://download.csdn.net/source/2796735 5.[第二部分]精选微软等公司结构+算法面试100题[前41-60题]: http://download.csdn.net/source/2811703 6.[第一部分]精选微软等公司数据结构+算法经典面试100题[1-40题] http://download.csdn.net/source/2778852 更多资源,下载地址: http://v_july_v.download.csdn.net/ ------------------------------------------------------ 各位,若对以上100题任何一道,或对已上传的任何一题的答案, 有任何问题,请把你的思路、想法,回复到此帖子上, 微软等100题系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html
昨日,11.19,最新整理了,第61-80题,现在公布上传。 另加上之前公布的第1-60 题,在此做一次汇总上传,以飨各位。 可以这么说,绝大部分的面试题,都是这100 道题系列的翻版, 此微软等公司数据结构+算法面试100 题系列,是极具代表性的经典面试题。 而,对你更重要的是,我自个还提供了答案下载,提供思路,呵。 所以,这份资料+答案,在网上是独一无二的。 ------------------------------------ 整理资源,下载地址: 答案系列: 1.[最新答案V0.3 版]微软等数据结构+算法面试100 题[第21-40 题答案] http://download.csdn.net/source/2832862 2.[答案V0.2 版]精选微软数据结构+算法面试100 题[前20 题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1 版本,进行的校正与修正。 3.[答案V0.1 版]精选微软数据结构+算法面试100 题[前25 题] http://download.csdn.net/source/2796735 题目系列: 4.[第一部分]精选微软等公司数据结构+算法经典面试100 题[1-40 题] http://download.csdn.net/source/2778852 5.[第1 题-60 题汇总]微软等数据结构+算法面试100 题 http://download.csdn.net/source/2826690 更多资源,下载地址: http://v_july_v.download.csdn.net/ 若你对以上任何题目或任何答案,有任何问题,欢迎联系我: My E-mail: zhoulei0907@yahoo.cn ------------- 作者声明: 本人July 对以上公布的所有任何题目或资源享有版权。转载以上公布的任何一题, 或上传百度文库资源,请注明出处,及作者我本人。 向你的厚道致敬。谢谢。 ---July、2010 年11 月20 日。 ------------------------------------------------------ 各位,若对以上100题任何一道,或对已上传的任何一题的答案, 有任何问题,请把你的思路、想法,回复到此帖子上, 微软等100题系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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