由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - Given two sorted list, find the k smallest number (binary search)
相关主题
请教一道题目一个小公司面经
bit manipulation 小题BB NON CS onsite面经
抛砖引玉,glassdoor上看来的zenefits题目1G内存读10G文件
onsite写完题还剩20分钟,没让优化问个经典问题的improvement
求Twitter onsite 经验 (分享些它家的题目)问一道老题
请教一道题LinkIn面经
解题速度啥要求变相的merge sort
刷题刷到没自信了一个特别的inplace merge two sorted arrays
相关话题的讨论汇总
话题: aleft话题: bleft话题: aright话题: bmid话题: amid
进入JobHunting版参与讨论
1 (共1页)
c*******r
发帖数: 309
1
这个binary search是怎么做啊?
我只想到merge再直接找第k个
s******n
发帖数: 226
2
假设第一个数组有L个元素在前k个元素里(两个数组) 然后binary L
p*****2
发帖数: 21240
3
array: A, B
index: i, j
你需要找到
1. i+j+2=k
2. B[j] 3. A[i] return max(A[i], B[j])
at the beginning
i=0
j=k-2
然后binary search。
s****j
发帖数: 67
4
int a[maxn],b[maxn];
int find(int aleft,int aright,int bleft,int bright,int k) {
if ((aright-aleft+1)+(bright-bleft+1) cout<<"error"< return 0;
}
if (aleft>aright)
return b[bleft+k-1];
if (bleft>bright)
return a[aleft+k-1];
int amid=(aleft+aright)>>1;
int bmid=(bleft+bright)>>1;
if (a[amid]<=b[bmid])
if (k<=(amid-aleft)+(bmid-bleft)+1)
return find(aleft,aright,bleft,bmid-1,k);
else
return find(amid+1,aright,bleft,bright,k-(amid-aleft+1));
else
if (k<=(amid-aleft)+(bmid-bleft)+1)
return find(aleft,amid-1,bleft,bright,k);
else
return find(aleft,aright,bmid+1,bright,k-(bmid-bleft+1));
}

【在 c*******r 的大作中提到】
: 这个binary search是怎么做啊?
: 我只想到merge再直接找第k个

k****n
发帖数: 369
5
最简单的办法是坐n-way merge sort

【在 c*******r 的大作中提到】
: 这个binary search是怎么做啊?
: 我只想到merge再直接找第k个

1 (共1页)
进入JobHunting版参与讨论
相关主题
一个特别的inplace merge two sorted arrays求Twitter onsite 经验 (分享些它家的题目)
请教bloomberg 问题, 有关sorting请教一道题
anybody remember this question?? (about sorting)解题速度啥要求
re: 面试归来,上面经回馈各位战友刷题刷到没自信了
请教一道题目一个小公司面经
bit manipulation 小题BB NON CS onsite面经
抛砖引玉,glassdoor上看来的zenefits题目1G内存读10G文件
onsite写完题还剩20分钟,没让优化问个经典问题的improvement
相关话题的讨论汇总
话题: aleft话题: bleft话题: aright话题: bmid话题: amid