社区
数据结构与算法
帖子详情
微软的一道比较难的算法面试题
pkukevin
2009-01-17 05:25:38
加精
平面上N个点,没两个点都确定一条直线,求出斜率最大的那条直线所通过的两个点(斜率不存在的情况不考虑)。时间效率越高越好
...全文
9751
240
打赏
收藏
微软的一道比较难的算法面试题
平面上N个点,没两个点都确定一条直线,求出斜率最大的那条直线所通过的两个点(斜率不存在的情况不考虑)。时间效率越高越好
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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题全部答案集锦.
这份“
微软
等数据结构+
算法
面试100题全部答案集锦”文档显然是一个宝贵的资源,它提供了深入理解这些关键概念的机会。 首先,我们要明确数据结构是什么。数据结构是指在计算机中组织和存储数据的方式,包括数组、...
【July整理】
微软
等数据结构+
算法
面试100题[附完整答案]
总结以上,文档中提到的内容涉及了数据结构和
算法
面试题
的准备、知识共享的价值、资源的持续更新与优化、
面试题
目的实际解答思路、面试准备的长期性以及国际化社区的影响力。这些都是准备参加面试的程序员应当深入...
[第二部分]精选
微软
等公司结构+
算法
面试100题[41-60题]
根据提供的信息,我们可以总结出这份文档包含了从第41题到第60题的数据结构与
算法
面试题
目。这些题目是从
微软
等知名公司的
面试题
目中精选出来的,并由原作者进行了整理和发布。以下是对这些题目的详细解读: ### 第...
新鲜出炉:
微软
等数据结构+
算法
面试100题第81-100题[V0.1版最后20题]
微软
等公司数据结构与
算法
面试题
的背景 - **作者**: July,一位热衷于分享数据结构和
算法
知识的博主。 - **发布时间**: 2010年12月5日。 - **目的**: 分享
微软
及其他知名IT公司面试中常见的数据结构与
算法
题目,...
数据结构与算法
33,025
社区成员
35,334
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章