由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - bloomberg和Google面经 发包子攒人品
相关主题
问道题求个递归复杂度答案
两道google的onsite题目请教一个题目
问一道flg面试题复杂度
【什么时候需要做heap, 什么时候需要做BST】A面经
G家电面题目求问Jane Street一道面试题
数组中找和为0的3个数,4个数Facebook interview questions
上楼梯问题的时间复杂度是o(n)还是 nlogn?数组里找第二大的数
问一道题~旧题重提: 扔玻璃杯/扔鸡蛋问题
相关话题的讨论汇总
话题: bless话题: google话题: manager话题: map
进入JobHunting版参与讨论
1 (共1页)
i*********e
发帖数: 9
1
Google(summer intern)
1.给你一个two dimensional array, array的元素是0 或者1。问能不能找到一个矩形
,矩形的4个角都是1.
leetcode里面有类似的题,我给了类似的答案,复杂度是O(n^3),感觉面试官不是很满
意。不知道有没有复杂度更少的算法。
2.有高矮不一的一群人,随机排列。排完之后每个人记下比自己前面比自己高的人的数
目。之后把队打乱,
跟据高度和比自己高的人的数目还原原来的队列。
我给了一个O(n^2)的算法,在算法群里讨论之后有牛牛说用线段树可以实现O(nlogn)的
算法。
Bloomberg:
1. 给一个数组: 6, 3, 10, 5, 16, 8, 4, 2, 1
找出这个数组的顺序。写一个程序,input是数组里的一个数,Output是从这个数开始
的整个数组。
2. 实现一个BFS算法。
3. 一个数组,里面有成对出现的数,也有单个的数,把单个的数找出来(leetcode原
题)。
4. 一个公司有好多员工,员工之间的关系储存为(employee ID, manager ID) 这样的
pair。要求写一个数据结构,储存这些员工之前的关系。
基于这样的数据结构写出:
1)查找employee的manager.
2)给一个employee和一个manager,查找这个manger是不是这个员工的直接或简介
manager(manager的manager这样的)
3)打印出一个manager手下所有的直接或者间接员工。
4)向这个数组里增加新的(employee, manager)关系。
并给出复杂度分析。
最后推荐一个算法群229623621,里面牛人很多,群里还自己做了OJ,讨论氛围很活跃。
发一些包子攒人品,期待好消息
j**********e
发帖数: 1034
2
bless!

【在 i*********e 的大作中提到】
: Google(summer intern)
: 1.给你一个two dimensional array, array的元素是0 或者1。问能不能找到一个矩形
: ,矩形的4个角都是1.
: leetcode里面有类似的题,我给了类似的答案,复杂度是O(n^3),感觉面试官不是很满
: 意。不知道有没有复杂度更少的算法。
: 2.有高矮不一的一群人,随机排列。排完之后每个人记下比自己前面比自己高的人的数
: 目。之后把队打乱,
: 跟据高度和比自己高的人的数目还原原来的队列。
: 我给了一个O(n^2)的算法,在算法群里讨论之后有牛牛说用线段树可以实现O(nlogn)的
: 算法。

i*********e
发帖数: 9
3
谢谢。现在还在忧伤google summer intern的host match >.<

【在 j**********e 的大作中提到】
: bless!
J***e
发帖数: 16
4
good luck
c****f
发帖数: 28
5
求问google第一题解法
l*****a
发帖数: 14598
6
thanks for sharing
群里的OJ上线了?赶紧去看看

【在 i*********e 的大作中提到】
: Google(summer intern)
: 1.给你一个two dimensional array, array的元素是0 或者1。问能不能找到一个矩形
: ,矩形的4个角都是1.
: leetcode里面有类似的题,我给了类似的答案,复杂度是O(n^3),感觉面试官不是很满
: 意。不知道有没有复杂度更少的算法。
: 2.有高矮不一的一群人,随机排列。排完之后每个人记下比自己前面比自己高的人的数
: 目。之后把队打乱,
: 跟据高度和比自己高的人的数目还原原来的队列。
: 我给了一个O(n^2)的算法,在算法群里讨论之后有牛牛说用线段树可以实现O(nlogn)的
: 算法。

l******t
发帖数: 37
7
bless
G*****s
发帖数: 39
8
Bless!
求问google第二题O(NlogN)的算法 谢谢
l********y
发帖数: 1068
9
Bless
h********5
发帖数: 114
10
请教一下google第二题,我的想法是按每个人手里的数字排序,然后再逐步插入,请问
你是怎么做的
相关主题
数组中找和为0的3个数,4个数求个递归复杂度答案
上楼梯问题的时间复杂度是o(n)还是 nlogn?请教一个题目
问一道题~复杂度
进入JobHunting版参与讨论
R*******d
发帖数: 13640
11
bless
w****m
发帖数: 146
12
G的第二题是不是身高不能重复?
a********j
发帖数: 708
13
bless!
d******0
发帖数: 191
14
bless

【在 i*********e 的大作中提到】
: Google(summer intern)
: 1.给你一个two dimensional array, array的元素是0 或者1。问能不能找到一个矩形
: ,矩形的4个角都是1.
: leetcode里面有类似的题,我给了类似的答案,复杂度是O(n^3),感觉面试官不是很满
: 意。不知道有没有复杂度更少的算法。
: 2.有高矮不一的一群人,随机排列。排完之后每个人记下比自己前面比自己高的人的数
: 目。之后把队打乱,
: 跟据高度和比自己高的人的数目还原原来的队列。
: 我给了一个O(n^2)的算法,在算法群里讨论之后有牛牛说用线段树可以实现O(nlogn)的
: 算法。

l*****a
发帖数: 14598
15
1) sort
2) 对于最矮的人,你还知道前面比他高的有几个。这样你就知道了他的位置
然后找第二矮的,你还知道前面比他高的有几个。你还知道最矮的人在哪里,就因
该可以确定第2矮的位置
然后类推

【在 G*****s 的大作中提到】
: Bless!
: 求问google第二题O(NlogN)的算法 谢谢

i*********e
发帖数: 9
16
我也是这么做的

【在 h********5 的大作中提到】
: 请教一下google第二题,我的想法是按每个人手里的数字排序,然后再逐步插入,请问
: 你是怎么做的

i*********e
发帖数: 9
17
是的

【在 w****m 的大作中提到】
: G的第二题是不是身高不能重复?
f*********n
发帖数: 635
18
bless
l**********a
发帖数: 181
19
bless
J***o
发帖数: 553
20
其实关键在于确定第i个人的位置的时候,因为剩下的都是比他高的,而已经确定位置
的都是比他矮的,只要保证他前面有和原排序前面比他高的人数量相等的空位即可。如
果直接扫空位的话是O(N^2)。快一点的方法是把剩下的空位段保存在interval tree里
,这样每次找第k个空位只要O(logN),总体的复杂度是O(NlogN)

【在 l*****a 的大作中提到】
: 1) sort
: 2) 对于最矮的人,你还知道前面比他高的有几个。这样你就知道了他的位置
: 然后找第二矮的,你还知道前面比他高的有几个。你还知道最矮的人在哪里,就因
: 该可以确定第2矮的位置
: 然后类推

相关主题
A面经数组里找第二大的数
求问Jane Street一道面试题旧题重提: 扔玻璃杯/扔鸡蛋问题
Facebook interview questions请教fackbook一道题
进入JobHunting版参与讨论
l*****a
发帖数: 14598
21
需要那么复杂吗?
sort完了,一个个插入相应位置不就可以了

【在 J***o 的大作中提到】
: 其实关键在于确定第i个人的位置的时候,因为剩下的都是比他高的,而已经确定位置
: 的都是比他矮的,只要保证他前面有和原排序前面比他高的人数量相等的空位即可。如
: 果直接扫空位的话是O(N^2)。快一点的方法是把剩下的空位段保存在interval tree里
: ,这样每次找第k个空位只要O(logN),总体的复杂度是O(NlogN)

l*********5
发帖数: 12
22
bless
k********6
发帖数: 33
23
按身高排序 NlogN, 然后按身高顺序问数,linear time重现元队列,所以只要NlogN。
解释:
最高的人(P0)站哪里都无所谓,因为他记得数是一定是0.
所以直接问身高第二的人(P1),如果是0站P0前面,如果是1站P0后面。
再问身高第三的人,。。。。
这题不难,我是不是说太细了, 汗。

【在 h********5 的大作中提到】
: 请教一下google第二题,我的想法是按每个人手里的数字排序,然后再逐步插入,请问
: 你是怎么做的

k********6
发帖数: 33
24
刚看到lolhaha的方法,从最矮的开始直接定位,更节省space,赞。

NlogN。

【在 k********6 的大作中提到】
: 按身高排序 NlogN, 然后按身高顺序问数,linear time重现元队列,所以只要NlogN。
: 解释:
: 最高的人(P0)站哪里都无所谓,因为他记得数是一定是0.
: 所以直接问身高第二的人(P1),如果是0站P0前面,如果是1站P0后面。
: 再问身高第三的人,。。。。
: 这题不难,我是不是说太细了, 汗。

J***o
发帖数: 553
25
就是sort完一个个插入啊。。。问题是你怎么得到"相应位置",虽然表达起来很直观。
interval tree可以O(logN)。

【在 l*****a 的大作中提到】
: 需要那么复杂吗?
: sort完了,一个个插入相应位置不就可以了

i*******r
发帖数: 51
26
这是phone interview的题目还是onsite,phone interview一个小时内能把两个题的
code写完吗?

【在 i*********e 的大作中提到】
: Google(summer intern)
: 1.给你一个two dimensional array, array的元素是0 或者1。问能不能找到一个矩形
: ,矩形的4个角都是1.
: leetcode里面有类似的题,我给了类似的答案,复杂度是O(n^3),感觉面试官不是很满
: 意。不知道有没有复杂度更少的算法。
: 2.有高矮不一的一群人,随机排列。排完之后每个人记下比自己前面比自己高的人的数
: 目。之后把队打乱,
: 跟据高度和比自己高的人的数目还原原来的队列。
: 我给了一个O(n^2)的算法,在算法群里讨论之后有牛牛说用线段树可以实现O(nlogn)的
: 算法。

p*d
发帖数: 1128
27
Bless..
F******g
发帖数: 138
28


【在 i*********e 的大作中提到】
: Google(summer intern)
: 1.给你一个two dimensional array, array的元素是0 或者1。问能不能找到一个矩形
: ,矩形的4个角都是1.
: leetcode里面有类似的题,我给了类似的答案,复杂度是O(n^3),感觉面试官不是很满
: 意。不知道有没有复杂度更少的算法。
: 2.有高矮不一的一群人,随机排列。排完之后每个人记下比自己前面比自己高的人的数
: 目。之后把队打乱,
: 跟据高度和比自己高的人的数目还原原来的队列。
: 我给了一个O(n^2)的算法,在算法群里讨论之后有牛牛说用线段树可以实现O(nlogn)的
: 算法。

f******n
发帖数: 279
29
mark
n******c
发帖数: 38
30
说一下第一题矩阵的思路,抛砖引玉。
把矩阵的每行看成一个int
每行和其他行与,得到N^2/2个结果
设与的结果为m,则任一m如果有两个以上bit为1,则存在这个矩形。
O(1)时间判断m是否两个以上bit为1
如果m==0,则0个bit为1
如果m只有一个bit为1,则是2的n次幂,满足m&(m-1)==0
所以只要m!=0 && m&(m-1)!=0,m必有两个以上bit为1
所以整体解法复杂度是O(N^2)
相关主题
MS 电面面经,攒人品两道google的onsite题目
Amazon 电面题, 觉得不可能再优化了!问一道flg面试题
问道题【什么时候需要做heap, 什么时候需要做BST】
进入JobHunting版参与讨论
J***o
发帖数: 553
31
这个只有一行大小<=32的时候才能O(N^2)吧。复杂度应该是O(N^2 * N/32),相当于降
低了常数项,整体复杂度没变。不知道有没有更优的解法。。

【在 n******c 的大作中提到】
: 说一下第一题矩阵的思路,抛砖引玉。
: 把矩阵的每行看成一个int
: 每行和其他行与,得到N^2/2个结果
: 设与的结果为m,则任一m如果有两个以上bit为1,则存在这个矩形。
: O(1)时间判断m是否两个以上bit为1
: 如果m==0,则0个bit为1
: 如果m只有一个bit为1,则是2的n次幂,满足m&(m-1)==0
: 所以只要m!=0 && m&(m-1)!=0,m必有两个以上bit为1
: 所以整体解法复杂度是O(N^2)

m*****k
发帖数: 731
32
你想说O(N^2 * (N-32))吧?

【在 J***o 的大作中提到】
: 这个只有一行大小<=32的时候才能O(N^2)吧。复杂度应该是O(N^2 * N/32),相当于降
: 低了常数项,整体复杂度没变。不知道有没有更优的解法。。

m*****k
发帖数: 731
33
同求楼主说的leecode上类似解法。

【在 c****f 的大作中提到】
: 求问google第一题解法
m*****k
发帖数: 731
34
记下每行为1的indexes,
和另一行的indexes
求交,结果集>1即可。还是O(N^3), :(

【在 J***o 的大作中提到】
: 这个只有一行大小<=32的时候才能O(N^2)吧。复杂度应该是O(N^2 * N/32),相当于降
: 低了常数项,整体复杂度没变。不知道有没有更优的解法。。

M********t
发帖数: 5032
35
伊昔太仆张景顺
喜气自能成岁丰
酒开新瓮鲊开包
一等孔门为弟子
昨日嘉鱼来访我
后会未期心的的
朝来自觉承恩最
但是人家有遗爱
A********a
发帖数: 1846
36
bless
m****t
发帖数: 2329
37
去哪个了。
h*****k
发帖数: 420
38
bless
a****q
发帖数: 10636
39
Bless
w*****2
发帖数: 3093
40
Chi
相关主题
【什么时候需要做heap, 什么时候需要做BST】上楼梯问题的时间复杂度是o(n)还是 nlogn?
G家电面题目问一道题~
数组中找和为0的3个数,4个数求个递归复杂度答案
进入JobHunting版参与讨论
w***a
发帖数: 341
41
Bless
h**********2
发帖数: 1473
42
bless

【在 i*********e 的大作中提到】
: Google(summer intern)
: 1.给你一个two dimensional array, array的元素是0 或者1。问能不能找到一个矩形
: ,矩形的4个角都是1.
: leetcode里面有类似的题,我给了类似的答案,复杂度是O(n^3),感觉面试官不是很满
: 意。不知道有没有复杂度更少的算法。
: 2.有高矮不一的一群人,随机排列。排完之后每个人记下比自己前面比自己高的人的数
: 目。之后把队打乱,
: 跟据高度和比自己高的人的数目还原原来的队列。
: 我给了一个O(n^2)的算法,在算法群里讨论之后有牛牛说用线段树可以实现O(nlogn)的
: 算法。

w*****c
发帖数: 7276
43
big bless
P****9
发帖数: 177
44
多谢!祝楼主拿到offer!
s********h
发帖数: 2190
45
niu
w********s
发帖数: 1570
46
第二题不是heap sort么?

【在 i*********e 的大作中提到】
: Google(summer intern)
: 1.给你一个two dimensional array, array的元素是0 或者1。问能不能找到一个矩形
: ,矩形的4个角都是1.
: leetcode里面有类似的题,我给了类似的答案,复杂度是O(n^3),感觉面试官不是很满
: 意。不知道有没有复杂度更少的算法。
: 2.有高矮不一的一群人,随机排列。排完之后每个人记下比自己前面比自己高的人的数
: 目。之后把队打乱,
: 跟据高度和比自己高的人的数目还原原来的队列。
: 我给了一个O(n^2)的算法,在算法群里讨论之后有牛牛说用线段树可以实现O(nlogn)的
: 算法。

v******y
发帖数: 4134
47
小庭新扫地
手种未全成
一回终宴喜
伸屈须看蠖
包胥心独许
子夜最可怜
来朝大将稀
f*******r
发帖数: 976
48
Mark.
x**l
发帖数: 2337
49
bless!!!吃包子!!!
h*******l
发帖数: 923
50
天街雪似盐
芟庭留野菜
掘壕不到水
豁然逢光晶
但和大小包
相关主题
请教一个题目求问Jane Street一道面试题
复杂度Facebook interview questions
A面经数组里找第二大的数
进入JobHunting版参与讨论
d******r
发帖数: 327
51
Bless

【在 i*********e 的大作中提到】
: Google(summer intern)
: 1.给你一个two dimensional array, array的元素是0 或者1。问能不能找到一个矩形
: ,矩形的4个角都是1.
: leetcode里面有类似的题,我给了类似的答案,复杂度是O(n^3),感觉面试官不是很满
: 意。不知道有没有复杂度更少的算法。
: 2.有高矮不一的一群人,随机排列。排完之后每个人记下比自己前面比自己高的人的数
: 目。之后把队打乱,
: 跟据高度和比自己高的人的数目还原原来的队列。
: 我给了一个O(n^2)的算法,在算法群里讨论之后有牛牛说用线段树可以实现O(nlogn)的
: 算法。

n********r
发帖数: 300
52

应该可以重复吧?
貌似不影响

【在 i*********e 的大作中提到】
: 是的
n********r
发帖数: 300
53
google 第一题,可以是O(n*m)的时间的。 但需要 O(n^2)的空间,(假设n<=m)
b*f
发帖数: 1436
54
bless

【在 i*********e 的大作中提到】
: Google(summer intern)
: 1.给你一个two dimensional array, array的元素是0 或者1。问能不能找到一个矩形
: ,矩形的4个角都是1.
: leetcode里面有类似的题,我给了类似的答案,复杂度是O(n^3),感觉面试官不是很满
: 意。不知道有没有复杂度更少的算法。
: 2.有高矮不一的一群人,随机排列。排完之后每个人记下比自己前面比自己高的人的数
: 目。之后把队打乱,
: 跟据高度和比自己高的人的数目还原原来的队列。
: 我给了一个O(n^2)的算法,在算法群里讨论之后有牛牛说用线段树可以实现O(nlogn)的
: 算法。

w****3
发帖数: 110
55
求O(n*m)的解法?

【在 n********r 的大作中提到】
: google 第一题,可以是O(n*m)的时间的。 但需要 O(n^2)的空间,(假设n<=m)
S********e
发帖数: 74
56
请问interval tree 如何使用可以详细说说吗?
谢谢!

【在 J***o 的大作中提到】
: 其实关键在于确定第i个人的位置的时候,因为剩下的都是比他高的,而已经确定位置
: 的都是比他矮的,只要保证他前面有和原排序前面比他高的人数量相等的空位即可。如
: 果直接扫空位的话是O(N^2)。快一点的方法是把剩下的空位段保存在interval tree里
: ,这样每次找第k个空位只要O(logN),总体的复杂度是O(NlogN)

y******k
发帖数: 91
57
bless,我也申请了很多intern,都没下文
w****e
发帖数: 1322
58
bless
f*******y
发帖数: 9773
59
bless

【在 i*********e 的大作中提到】
: Google(summer intern)
: 1.给你一个two dimensional array, array的元素是0 或者1。问能不能找到一个矩形
: ,矩形的4个角都是1.
: leetcode里面有类似的题,我给了类似的答案,复杂度是O(n^3),感觉面试官不是很满
: 意。不知道有没有复杂度更少的算法。
: 2.有高矮不一的一群人,随机排列。排完之后每个人记下比自己前面比自己高的人的数
: 目。之后把队打乱,
: 跟据高度和比自己高的人的数目还原原来的队列。
: 我给了一个O(n^2)的算法,在算法群里讨论之后有牛牛说用线段树可以实现O(nlogn)的
: 算法。

z***d
发帖数: 1051
60
bless
相关主题
旧题重提: 扔玻璃杯/扔鸡蛋问题Amazon 电面题, 觉得不可能再优化了!
请教fackbook一道题问道题
MS 电面面经,攒人品两道google的onsite题目
进入JobHunting版参与讨论
n****o
发帖数: 41
61
BLESS
d******1
发帖数: 452
62
bless
s***d
发帖数: 314
63
l*********u
发帖数: 19053
64
bless

【在 i*********e 的大作中提到】
: Google(summer intern)
: 1.给你一个two dimensional array, array的元素是0 或者1。问能不能找到一个矩形
: ,矩形的4个角都是1.
: leetcode里面有类似的题,我给了类似的答案,复杂度是O(n^3),感觉面试官不是很满
: 意。不知道有没有复杂度更少的算法。
: 2.有高矮不一的一群人,随机排列。排完之后每个人记下比自己前面比自己高的人的数
: 目。之后把队打乱,
: 跟据高度和比自己高的人的数目还原原来的队列。
: 我给了一个O(n^2)的算法,在算法群里讨论之后有牛牛说用线段树可以实现O(nlogn)的
: 算法。

b***e
发帖数: 1419
65
For G1 O(n^2):
map[][] = 0; // map[i][j] records whether line i and line j have two
positions overlapping as 1s
for (i = 0; i < n; i++) {
currentOnes = []; // currentOnes is list of all the 1s that are
discovered so far on column i.
for (j = 0; j < m; j++) {
if (A[i][j] == 1) {
for (k = 0; k < currentOnes.length; k++) {
map[currentOnes[k]][j]++;
if (map[currentOnes[k]][j] > 2) {
return true;
}
currentOnes.push(j);
}
}
}
}
return false;

【在 i*********e 的大作中提到】
: Google(summer intern)
: 1.给你一个two dimensional array, array的元素是0 或者1。问能不能找到一个矩形
: ,矩形的4个角都是1.
: leetcode里面有类似的题,我给了类似的答案,复杂度是O(n^3),感觉面试官不是很满
: 意。不知道有没有复杂度更少的算法。
: 2.有高矮不一的一群人,随机排列。排完之后每个人记下比自己前面比自己高的人的数
: 目。之后把队打乱,
: 跟据高度和比自己高的人的数目还原原来的队列。
: 我给了一个O(n^2)的算法,在算法群里讨论之后有牛牛说用线段树可以实现O(nlogn)的
: 算法。

d***y
发帖数: 8107
66
zan
z******h
发帖数: 22
67
这个不是O(n^2) 吧

★ 发自iPhone App: ChineseWeb 7.8

【在 b***e 的大作中提到】
: For G1 O(n^2):
: map[][] = 0; // map[i][j] records whether line i and line j have two
: positions overlapping as 1s
: for (i = 0; i < n; i++) {
: currentOnes = []; // currentOnes is list of all the 1s that are
: discovered so far on column i.
: for (j = 0; j < m; j++) {
: if (A[i][j] == 1) {
: for (k = 0; k < currentOnes.length; k++) {
: map[currentOnes[k]][j]++;

F******g
发帖数: 138
68
bless

【在 i*********e 的大作中提到】
: Google(summer intern)
: 1.给你一个two dimensional array, array的元素是0 或者1。问能不能找到一个矩形
: ,矩形的4个角都是1.
: leetcode里面有类似的题,我给了类似的答案,复杂度是O(n^3),感觉面试官不是很满
: 意。不知道有没有复杂度更少的算法。
: 2.有高矮不一的一群人,随机排列。排完之后每个人记下比自己前面比自己高的人的数
: 目。之后把队打乱,
: 跟据高度和比自己高的人的数目还原原来的队列。
: 我给了一个O(n^2)的算法,在算法群里讨论之后有牛牛说用线段树可以实现O(nlogn)的
: 算法。

b***e
发帖数: 1419
69
仔细看。最内层循环amortize O (1) , because every cell in map [][] will be
set at most twice.

【在 z******h 的大作中提到】
: 这个不是O(n^2) 吧
:
: ★ 发自iPhone App: ChineseWeb 7.8

1 (共1页)
进入JobHunting版参与讨论
相关主题
旧题重提: 扔玻璃杯/扔鸡蛋问题G家电面题目
请教fackbook一道题数组中找和为0的3个数,4个数
MS 电面面经,攒人品上楼梯问题的时间复杂度是o(n)还是 nlogn?
Amazon 电面题, 觉得不可能再优化了!问一道题~
问道题求个递归复杂度答案
两道google的onsite题目请教一个题目
问一道flg面试题复杂度
【什么时候需要做heap, 什么时候需要做BST】A面经
相关话题的讨论汇总
话题: bless话题: google话题: manager话题: map