由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 刚面完 google,题目
相关主题
Amazon二面一个题
请教一个常见的面试题的答案binary search in rotated sorted array有重复时怎么办?
一个Amazon的面经fb店面
Quick sort为什么需要logN的memory?有没有人总结过binary search是mid加减1和小于或者等于的情况分类
请问可以用二分法判断一个数组是否sorted吗?binary search什么时候用l
问个binary search tree的问题CS intern面经
给定一个值和sorted队列,找到所有pair(其和等于给定值)how to solve this google interview question
这个rotated sorted array问题也问一个median的问题
相关话题的讨论汇总
话题: binary话题: logn话题: 然后话题: 区间话题: sorted
进入JobHunting版参与讨论
1 (共1页)
k**********i
发帖数: 177
1
晚了半个小时才打电话。。。
是个三哥, 英语很是费解, 不停的i am sorry, excuse me。。
接下来问了project 的东西, 问的很详细,就不多说了,
然后是个算法题,
给一个rotated sorted array,
例如: 3 4 5 1 2
然后给一个数 例如 6, 然后去找他是否在array里面。
我首先说是找到分界点, 然后对两边用binary search, 这个效率应该是O(n)吧, 毕
竟最坏情
况下找到分界点要遍历一遍。
然后他就问binary search 为啥不写成recuisive的, 然后问recursive和平常的有啥
区别。。。
然后他问怎么能够提高算法的效率, 我说能到logn。。。就跟就是用binary和递归每
次找中点。
。。
bless自己了。
k**********i
发帖数: 177
2
对了 这种engineer面完给谁发 thank you letter呢?

【在 k**********i 的大作中提到】
: 晚了半个小时才打电话。。。
: 是个三哥, 英语很是费解, 不停的i am sorry, excuse me。。
: 接下来问了project 的东西, 问的很详细,就不多说了,
: 然后是个算法题,
: 给一个rotated sorted array,
: 例如: 3 4 5 1 2
: 然后给一个数 例如 6, 然后去找他是否在array里面。
: 我首先说是找到分界点, 然后对两边用binary search, 这个效率应该是O(n)吧, 毕
: 竟最坏情
: 况下找到分界点要遍历一遍。

i********s
发帖数: 133
3
应该不用先找分解点,直接用binary search, 只不过需要分情况讨论每次应该往左边
还是右边跳。所以复杂度O(lgn)
>我首先说是找到分界点, 然后对两边用binary search, 这个效率应该是O(n)>吧, 毕
竟最坏情
况下找到分界点要遍历一遍。
D***h
发帖数: 183
4
shifted sorted array的binary search也是O(lg n)的,判断条件稍微修改一下就行了.

【在 k**********i 的大作中提到】
: 晚了半个小时才打电话。。。
: 是个三哥, 英语很是费解, 不停的i am sorry, excuse me。。
: 接下来问了project 的东西, 问的很详细,就不多说了,
: 然后是个算法题,
: 给一个rotated sorted array,
: 例如: 3 4 5 1 2
: 然后给一个数 例如 6, 然后去找他是否在array里面。
: 我首先说是找到分界点, 然后对两边用binary search, 这个效率应该是O(n)吧, 毕
: 竟最坏情
: 况下找到分界点要遍历一遍。

k**********i
发帖数: 177
5
是啊, 我后来又写了这个, 修改下条件 然后递归做的

了.

【在 D***h 的大作中提到】
: shifted sorted array的binary search也是O(lg n)的,判断条件稍微修改一下就行了.
j**l
发帖数: 2911
6
这题不是前几天讨论过的么?是Google盗用Amazon的题目还是反过来?
发信人: bokertov (早上好), 信区: JobHunting
标 题: Amazon二面
发信站: BBS 未名空间站 (Thu Apr 1 20:17:29 2010, 美东)
面试官是位华人,非常nice,问的题目也不难
不过我又没答好,一道在circular sorted array里binary search的题目,
当时一着急,大脑一片空白。
挂了电话,几分钟内就有了思路。
唉,看来这次又黄了。
http://www.mitbbs.com/article_t/JobHunting/31563639.html
j**l
发帖数: 2911
7
如果有重复元素,还能O(logn)么?
比如
22222212
找1
如果没有重复元素
假定当前搜索区间开始的下标是s, 中点的下标是m, 结束的下标是e,
要查找的数是x,可以证明A[s] <= A[m]和A[m] <= A[e]至少有一个成立
if (s > e)
查找失败返回;
m = (s + e) / 2;
if (x == A[m] || x == A[s] || x == A[e])
查找成功返回;
if (A[s] <= A[m])
{
if (x > A[s] && x < A[m]
在区间[s, m-1]继续找
else
在区间[m+1, e]继续找
}
else if (A[m] <= A[e])
{
if (x > A[m] && x < A[e]
在区间[m+1, e]继续找
else
在区间[s, m-1]继续找
}
else
{
// This is not possible if the original array is circular sorted
k**********i
发帖数: 177
8
我觉得, 每次分一半, 有三种情况, 一遍是跟元来的一样的特点, 一遍是递增,或
者两边都
是递增,
然后对三种情况递归就可以了。 然后效率是logn

【在 j**l 的大作中提到】
: 如果有重复元素,还能O(logn)么?
: 比如
: 22222212
: 找1
: 如果没有重复元素
: 假定当前搜索区间开始的下标是s, 中点的下标是m, 结束的下标是e,
: 要查找的数是x,可以证明A[s] <= A[m]和A[m] <= A[e]至少有一个成立
: if (s > e)
: 查找失败返回;
: m = (s + e) / 2;

j**l
发帖数: 2911
9
不妨贴出你写的代码,验证下是否O(logn)时间也能解决重复元素的问题

【在 k**********i 的大作中提到】
: 我觉得, 每次分一半, 有三种情况, 一遍是跟元来的一样的特点, 一遍是递增,或
: 者两边都
: 是递增,
: 然后对三种情况递归就可以了。 然后效率是logn

k**********i
发帖数: 177
10
我发现我的程序 对重复元素好像不行。。。要修改, 刚看了看, 发现程序里有些小
问题, 但
是面试的三哥当时也没有问。。。

【在 j**l 的大作中提到】
: 不妨贴出你写的代码,验证下是否O(logn)时间也能解决重复元素的问题
相关主题
问个binary search tree的问题一个题
给定一个值和sorted队列,找到所有pair(其和等于给定值)binary search in rotated sorted array有重复时怎么办?
这个rotated sorted array问题fb店面
进入JobHunting版参与讨论
x**y
发帖数: 10012
11
re-index to make it sorted
then binary

【在 k**********i 的大作中提到】
: 晚了半个小时才打电话。。。
: 是个三哥, 英语很是费解, 不停的i am sorry, excuse me。。
: 接下来问了project 的东西, 问的很详细,就不多说了,
: 然后是个算法题,
: 给一个rotated sorted array,
: 例如: 3 4 5 1 2
: 然后给一个数 例如 6, 然后去找他是否在array里面。
: 我首先说是找到分界点, 然后对两边用binary search, 这个效率应该是O(n)吧, 毕
: 竟最坏情
: 况下找到分界点要遍历一遍。

l*******y
发帖数: 1498
12
如果有重复元素,递增与否是无法判断的,比如 22222212 这个例子
如果没有重复的元素,logn是可以的,否则,我觉得只能O(n)了

【在 k**********i 的大作中提到】
: 我觉得, 每次分一半, 有三种情况, 一遍是跟元来的一样的特点, 一遍是递增,或
: 者两边都
: 是递增,
: 然后对三种情况递归就可以了。 然后效率是logn

j**l
发帖数: 2911
13
这个预处理是O(n),
不过以后都是一劳永逸的O(logn)了

【在 x**y 的大作中提到】
: re-index to make it sorted
: then binary

w****l
发帖数: 88
14
应该是直接二分查找就可以了吧
B*****t
发帖数: 335
15
有没有重复元素都是log(n)

【在 l*******y 的大作中提到】
: 如果有重复元素,递增与否是无法判断的,比如 22222212 这个例子
: 如果没有重复的元素,logn是可以的,否则,我觉得只能O(n)了

r****o
发帖数: 1950
16
能不能说说有重复元素怎么作的?
多谢。

【在 B*****t 的大作中提到】
: 有没有重复元素都是log(n)
B*****t
发帖数: 335
17
sorry, worst case is still O(N) if there are duplicates. average case is O(
logn)

【在 r****o 的大作中提到】
: 能不能说说有重复元素怎么作的?
: 多谢。

x******3
发帖数: 245
18
好像预处理找sorted array的起点和结束可以是lgN, 用binary search找起点和结束

【在 j**l 的大作中提到】
: 这个预处理是O(n),
: 不过以后都是一劳永逸的O(logn)了

1 (共1页)
进入JobHunting版参与讨论
相关主题
也问一个median的问题请问可以用二分法判断一个数组是否sorted吗?
两道2009算法题问个binary search tree的问题
找最大俩数的代码怎么写?给定一个值和sorted队列,找到所有pair(其和等于给定值)
问个老题,find the next larger in BST这个rotated sorted array问题
Amazon二面一个题
请教一个常见的面试题的答案binary search in rotated sorted array有重复时怎么办?
一个Amazon的面经fb店面
Quick sort为什么需要logN的memory?有没有人总结过binary search是mid加减1和小于或者等于的情况分类
相关话题的讨论汇总
话题: binary话题: logn话题: 然后话题: 区间话题: sorted