由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - LinkedIn家电面面经
相关主题
请问可以用二分法判断一个数组是否sorted吗?数组中找和为0的3个数,4个数
find median for k sorted arrays有没有这样的题型
两道2009算法题10分钟前的F家电面面经
remove duplicate in sorted array两个P家电面面经
问个google面试题问道题的解题思路
问个binary search tree的问题刚面完 google,题目
关于K个sorted数组中第n大数的问题A Google Problem (2)
有A[i]Quick sort为什么需要logN的memory?
相关话题的讨论汇总
话题: int话题: linkedin话题: mid话题: col话题: target
进入JobHunting版参与讨论
1 (共1页)
w******a
发帖数: 236
1
今天下午和LinkedIn的一个老美电面了一下,一个小时只做了一道题。自己发挥的不好
,就move on吧。题目其实很简单,在一个2D的,行sorted,列sorted,另外前一行的
最后一个数小于下一行第一个数的整数数组中,寻找target数是否存在。举例:
1 3 5 7
8 10 12 16
20 14 28 40
一开始我说了O(n)的解法,就是从右上角的元素开始,根据当前元素和target比较的大
小,决定向下还是向左移动,直到最后一行和最左一列。leetcode的网站上有的。后来
又问如果是row=1或者col=1怎么办。回答说那就普通binary search。再问那考虑通用
情况,如何改进。这时候我反应过来,应该对这个二维数组从middle element开始,直
接进行binary search。复杂度为O(lg(M+N))。对方表示满意。
接下来开始写程序。这时候突然开始愚钝,死活没写对怎么计算middle element当前的
row和col的值。后来时间耗得差不多了,突然反应过来应该用个小的helper function
去做1D index到2D index的转换。但是已经没有时间写完了,只好就是描述了一下,在
collabedit上尽量写下自己的思路。
只剩5分钟了,他问了一个data mining的题目,好像是一个著名的filter的定义。我说
我虽然是做了data mining,但是本行不是这个,所以没有听说过这个。但是我做了类
似的东西,快速解释了一下。最后问了他,在对LinkedIn Today模块的数据进行处理时
,如何解决同一个story前后不同版本的de-duplication问题。他谈了谈大概,就结束
了。
最后他祝我Good Luck。估计没戏了。我觉得自己确实不是码农的料,可是为了生计,
目前就是只能做这个。换个工作也这么难,感觉有些郁闷。但是还是要打起精神,总结
经验教训,继续努力吧。
希望对后来人的准备有帮助。
d******u
发帖数: 397
2
bless, 别灰心
l***i
发帖数: 1309
3
I don't think you can do log(M+N), after you throw away one quarter, the
remaining ones are no longer a square and it gets tricky
w****x
发帖数: 2483
4
二分嘛, 版上有, linkedin怎么又用这道题
l*****a
发帖数: 14598
5
估计笔误,O(lg(M*N)) or O(lgM+lgN)

【在 l***i 的大作中提到】
: I don't think you can do log(M+N), after you throw away one quarter, the
: remaining ones are no longer a square and it gets tricky

l*****a
发帖数: 14598
6
要有信心,不是也在大公司骑驴找马吗?
我今天还学习了你当年的FB面经呢
hoho

【在 w******a 的大作中提到】
: 今天下午和LinkedIn的一个老美电面了一下,一个小时只做了一道题。自己发挥的不好
: ,就move on吧。题目其实很简单,在一个2D的,行sorted,列sorted,另外前一行的
: 最后一个数小于下一行第一个数的整数数组中,寻找target数是否存在。举例:
: 1 3 5 7
: 8 10 12 16
: 20 14 28 40
: 一开始我说了O(n)的解法,就是从右上角的元素开始,根据当前元素和target比较的大
: 小,决定向下还是向左移动,直到最后一行和最左一列。leetcode的网站上有的。后来
: 又问如果是row=1或者col=1怎么办。回答说那就普通binary search。再问那考虑通用
: 情况,如何改进。这时候我反应过来,应该对这个二维数组从middle element开始,直

h****e
发帖数: 928
7
这道题的复杂度应该是O(log(M*N)),也就是O(logM+logN)。转化成
一维数组大概是最简单的解法了。下面是Java写的解法:
public boolean searchMatrix(int[][] matrix, int target) {
int m = matrix.length;
if (m==0) {
return false;
}
int n = matrix[0].length;
if (n==0) {
return false;
}
int i=0;
int j=m*n-1;
while (i<=j) {
int mid = i+(j-i)/2;
int row = mid/n;
int col = mid%n;
int v = matrix[row][col];
if (v==target) {
return true;
}
if (v>target) {
j = mid-1;
} else {
i = mid+1;
}
}
return false;
}
w******a
发帖数: 236
8
不好意思,确实是笔误,应该是O(M*N)。

【在 l*****a 的大作中提到】
: 估计笔误,O(lg(M*N)) or O(lgM+lgN)
v****c
发帖数: 29
9
。。。
O(log(M*N))和O(log(M+N))有什么区别?

【在 w******a 的大作中提到】
: 不好意思,确实是笔误,应该是O(M*N)。
y**********u
发帖数: 6366
10
字符串不一样

【在 v****c 的大作中提到】
: 。。。
: O(log(M*N))和O(log(M+N))有什么区别?

w******a
发帖数: 236
11
今天脑子木得很,进水了,居然再次笔误!!!复杂度应该是O(lg(M*N))。
i****s
发帖数: 1152
12
huh? 怎么跟我被问到的题目是一样的?
b******i
发帖数: 914
13
本人愚钝,为什么这个可以work?
直接转化为一维数组以后,得到的一维数组并不是排好序的啊,为什么能直接二分搜索
呢?

【在 h****e 的大作中提到】
: 这道题的复杂度应该是O(log(M*N)),也就是O(logM+logN)。转化成
: 一维数组大概是最简单的解法了。下面是Java写的解法:
: public boolean searchMatrix(int[][] matrix, int target) {
: int m = matrix.length;
: if (m==0) {
: return false;
: }
: int n = matrix[0].length;
: if (n==0) {
: return false;

b******i
发帖数: 914
14
哦 原来前一行的最后一个数小于后一行的第一个,有这个条件

【在 b******i 的大作中提到】
: 本人愚钝,为什么这个可以work?
: 直接转化为一维数组以后,得到的一维数组并不是排好序的啊,为什么能直接二分搜索
: 呢?

1 (共1页)
进入JobHunting版参与讨论
相关主题
Quick sort为什么需要logN的memory?问个google面试题
一道题目问个binary search tree的问题
A家面经 (三轮电面)关于K个sorted数组中第n大数的问题
问一个排序的问题有A[i]
请问可以用二分法判断一个数组是否sorted吗?数组中找和为0的3个数,4个数
find median for k sorted arrays有没有这样的题型
两道2009算法题10分钟前的F家电面面经
remove duplicate in sorted array两个P家电面面经
相关话题的讨论汇总
话题: int话题: linkedin话题: mid话题: col话题: target