由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请教一题,求两个不等长的有序数组的median
相关主题
找第K个最小的元素一般电面C++会问到什么专业问题?
求两个等长有序数组的median的细节merge两个有序数组
问道小学题:两等长有序数组,求第k个数问一题:merge两个有序数组
数组里找最大集合,该集合排序后是序列,有漂亮解法么?问一道题
Median of Two Sorted Arrays有好的merge有序数组算法么
find median for k sorted arraysBB 面经
M大小的数组中选出前N个元素 (如果M和N都很大)面试题:两个有序数组中的最小差值
讨论一题,去除有序数组的重复元素请教大家一个算法的面试题目
相关话题的讨论汇总
话题: padding话题: 数组话题: median话题: 有序话题: log
进入JobHunting版参与讨论
1 (共1页)
j**l
发帖数: 2911
1
如果两个有序数组等长,假定都为n, 则log(n)时间找median的解法已经被讨论过很多
次了。
如果有序数组A的长度为m, 有序数组B的长度为n, 如何找log(m + n)的解法?
有人说可以padding短数组,那么padding的策略是什么?
padding是否用到了额外的空间?有没有其它方法不用额外空间,复杂度还是log(m + n
)?
S******a
发帖数: 862
2
http://74.53.4.74/article_t/JobHunting/31553641.html

n

【在 j**l 的大作中提到】
: 如果两个有序数组等长,假定都为n, 则log(n)时间找median的解法已经被讨论过很多
: 次了。
: 如果有序数组A的长度为m, 有序数组B的长度为n, 如何找log(m + n)的解法?
: 有人说可以padding短数组,那么padding的策略是什么?
: padding是否用到了额外的空间?有没有其它方法不用额外空间,复杂度还是log(m + n
: )?

j**l
发帖数: 2911
3
多谢。这种题目会要求写代码么?感觉白板太小会写不下。而且你说的重载[],必须是
对class才能进行的吧(比如STL给vector模板重载了[])?

【在 S******a 的大作中提到】
: http://74.53.4.74/article_t/JobHunting/31553641.html
:
: n

j**l
发帖数: 2911
4
想起来,也可以是广义的重载。完全可以写一个函数
GetArrayElement(int A[], int size, int k);

【在 j**l 的大作中提到】
: 多谢。这种题目会要求写代码么?感觉白板太小会写不下。而且你说的重载[],必须是
: 对class才能进行的吧(比如STL给vector模板重载了[])?

S******A
发帖数: 1002
5
padding: add same number of elems on left and right - what if we cannot do
it? hmm good question.
额外空间? why bother considering this? space is still in order of O(n)
j**l
发帖数: 2911
6
你这样的padding对么?
比如
A: 1
B: 3, 3, 3
直接求median是3
对A进行padding得到
A: 1, 1, 1
B: 3, 3, 3
求得median是2

【在 S******A 的大作中提到】
: padding: add same number of elems on left and right - what if we cannot do
: it? hmm good question.
: 额外空间? why bother considering this? space is still in order of O(n)

k*******d
发帖数: 701
7
不是找两个数组的中间值然后求平均值吗?
a*u
发帖数: 97
8
for padding, you should use global min (min(1,3)) and global max (max(1,3)),
instead of min/max of one array. so after padding A: 1, 1, 3, median is
still 3.
A bit tricky when n-m is odd number though.

【在 j**l 的大作中提到】
: 你这样的padding对么?
: 比如
: A: 1
: B: 3, 3, 3
: 直接求median是3
: 对A进行padding得到
: A: 1, 1, 1
: B: 3, 3, 3
: 求得median是2

B*****t
发帖数: 335
9
这个本质跟两个等长数组找median道理一样,没什么区别,O(log(n+n))变成了
O(log(m+n))


n

【在 j**l 的大作中提到】
: 如果两个有序数组等长,假定都为n, 则log(n)时间找median的解法已经被讨论过很多
: 次了。
: 如果有序数组A的长度为m, 有序数组B的长度为n, 如何找log(m + n)的解法?
: 有人说可以padding短数组,那么padding的策略是什么?
: padding是否用到了额外的空间?有没有其它方法不用额外空间,复杂度还是log(m + n
: )?

1 (共1页)
进入JobHunting版参与讨论
相关主题
请教大家一个算法的面试题目Median of Two Sorted Arrays
LC有序数组删重复元素的题怎么最快?find median for k sorted arrays
问道题M大小的数组中选出前N个元素 (如果M和N都很大)
[合集] 面试题求解讨论一题,去除有序数组的重复元素
找第K个最小的元素一般电面C++会问到什么专业问题?
求两个等长有序数组的median的细节merge两个有序数组
问道小学题:两等长有序数组,求第k个数问一题:merge两个有序数组
数组里找最大集合,该集合排序后是序列,有漂亮解法么?问一道题
相关话题的讨论汇总
话题: padding话题: 数组话题: median话题: 有序话题: log