查看: 3235|回复: 11
收起左侧

Google : 就地寻找两数组中第k大的数

|只看干货 |刷题
头像被屏蔽

分享帖子到朋友圈
wwwyhx | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

上一篇:Google : 构建特殊堆
下一篇:Microsoft : Find anagram pairs
intersun 2011-6-17 01:13:25 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (26)
 
 
0% (0)    👎
连个临时变量都不让声明吗。。。还是能用O(1)的空间。
回复

使用道具 举报

MontagueHu 2011-6-20 09:02:00 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (102)
 
 
0% (0)    👎
如果可以使用O(k)空间的话,priority_queue就行了。如果O(1)空间,感觉就要sort两个array,然后binary search了
回复

使用道具 举报

头像被屏蔽
 楼主| wwwyhx 2011-6-20 19:48:58 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

lambda2fei 2012-9-4 16:48:06 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (1)
 
 
0% (0)    👎
不就是快排的partition的过程修改一下吗。又或者用线性时间的寻找中位数的方法。
回复

使用道具 举报

CStick75 2012-9-6 21:46:31 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (1)
 
 
0% (0)    👎
逻辑上连在一起好了……物理上连不连其实不重要啊
回复

使用道具 举报

sing1ee 2012-9-28 23:09:40 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (2)
 
 
0% (0)    👎
我的想法
1)两个数组各自快排
2)两个索引分别从大到小遍历,计数topk=0,当索引指向的当前值大的,topk++,该索引--,知道topk=k。

回复

使用道具 举报

285845348 2012-10-9 03:41:00 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   85% (6)
 
 
14% (1)    👎
反正都在内存里面,Partition稍微变化一下
另外可以考虑一下,不能全部load进内存的一串整数的Kth问题
回复

使用道具 举报

头像被屏蔽
wil90 2012-10-25 17:46:18 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

secretgu 2012-11-2 12:01:32 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   98% (187)
 
 
1% (3)    👎
我勒个去,我手滑不小心点到“杂草“,怎么办= =求W大,K姐帮忙后台改一下= =
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

隐私提醒:
■拉群请前往同学同事飞友|拉群结伴版块,其他版块拉群,帖子会被自动删除
■论坛不能删帖,为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
■特定版块可以超级匿名:https://tools.1point3acres.com/thread
■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

>
快速回复 返回顶部 返回列表