求k个有序数组的中位数

昨天面试这道题没做出来,搜了一下,都是求两个有序数组的中位数,那么有k个有序数组的时候,该如何解答呢?本人算法薄弱,望指点。

#笔试题目#
全部评论
leetcode23题变形
1 回复 分享
发布于 2019-07-26 10:00
跟两个的一样,选一个数组尝试二分答案a,在其他数组二分查找a的上界和下界,统计在中位数范围内就找到了。第一次选的数组不一定找得到答案,但可以在根据结果判断在其他哪些数组继续找,总体二分的范围不会超过所有元素n,复杂度klognlogn
点赞 回复 分享
发布于 2019-07-26 07:07
剑指offer上的一个题,楼主可以在牛客的在线编程里面找到
点赞 回复 分享
发布于 2019-07-26 08:31
建立大小为k的大根堆,从每个数组的最后位置往里面插,插满以后每次取堆顶弹出,然后再插入堆顶数所在数组的下一个,调整堆在弹出,弹出所有数字个数的一半,那个数字就是中位数
点赞 回复 分享
发布于 2019-07-26 07:33
一共有n个数的话,建堆,不断插入直到堆大小为k/
点赞 回复 分享
发布于 2019-07-25 23:38

相关推荐

06-13 10:15
门头沟学院 Java
想去夏威夷的大西瓜在...:我也是27届,但是我现在研一下了啥项目都没有呀咋办,哎,简历不知道咋写
点赞 评论 收藏
分享
评论
点赞
31
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务