由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - Pure Storage面经
相关主题
请教一道面试题请教个面经里的设计题
请问pure storage 的那道map 数据结构题L家的高频题merge k sorted arrays giving iterators求讨论!
请教一道数据结构的设计题职业杯另外一道
一道经典涉及多线程,互斥访问的面试题what is the internal implementation of Deque
跪求pure storage的面经!谢谢!讨论一个题目
问一道facebook的面试题一个实际碰到的问题
求指点一道G家Iterator的题目combinations 有没有 iterative的方法阿 ?
问个最近面试里的题目fb国内申请的曲折经历+电面
相关话题的讨论汇总
话题: task话题: addtask话题: trigger话题: len话题: queue
进入JobHunting版参与讨论
1 (共1页)
u*****n
发帖数: 126
1
在他们家遇到了两个傻B阿三。一个不停的纠正我的逗号和分号,另外一个给的hints都
是废话。最后挂了。他们家的阿三是我面过的所有公司中最极品的。所以面试他们家要
小心傻B阿三。当然他们家的华人美女HR相当的nice,是我遇到的所有HR中最nice的。
总共面了四轮:
第一轮:定义buddy system为一棵complete binary tree。一个node可能为0也可能为1
. 它的
value为1,当且仅当它所有的child的value均为1.
1
|
1 2
| |
1 2 3 4
| | | |
1 2 3 4 5 6 7 8
实现下列的method。
1' clearBit(int offset, int len);
2' setBit(int offset, int len);
第二轮:设计一个task dispatching system,里面有一个task queue和两个function。
1’ trigger。这个function运行并清空task queue中所有的tasks。
2‘ addTask。在trigger之前把task加入task queue,在trigger之后直接运行task。
第三轮:产生一个圆上的所有坐标。不用sqrt, sin, cos等内建函数。
提示:所有的点都是整点。首先我们可以利用对称性把圆分成8块,先画出0-45度角内
的点,然后映射之。对于其中0-45度角中的点,当X+1时,Y的值或者不变或者-1,然
后放入圆方程中看哪一个是对的。
第四轮:设计一个Map,满足下面的复杂度。
add: O(1) deletion: O(1) lookup: O(1) clear:O(1) iterate: O(number of
elements)。
提示:
如果我们用randomly accessed array,复杂度如下:
add: O(1) deletion: O(1) lookup: O(1) clear: O(size of array) iterate:
O(size of array)
如果我么用sequential array, 复杂度如下:
add: O(1) deletion: O(number of elements) lookup:O(number of elements)
clear: O(1) iterate:O(number of elements)
所以我们需要把这两个方法整合起来。
o**********e
发帖数: 18403
2
谢谢分享! 祝找到好工作!
希望别的 purestorage的同学
能分享一下经验和观察。
大家去nice一点,支持老中HR吧。
以后记住烙印的名字。 人肉伺候。。。
j******a
发帖数: 55
3
赞lz。
第三题还是不明白什么意思?能具体说说嘛?谢了
j**********3
发帖数: 3211
4
这家让用java么
t**********h
发帖数: 2273
5
不错,准备搞

为1

【在 u*****n 的大作中提到】
: 在他们家遇到了两个傻B阿三。一个不停的纠正我的逗号和分号,另外一个给的hints都
: 是废话。最后挂了。他们家的阿三是我面过的所有公司中最极品的。所以面试他们家要
: 小心傻B阿三。当然他们家的华人美女HR相当的nice,是我遇到的所有HR中最nice的。
: 总共面了四轮:
: 第一轮:定义buddy system为一棵complete binary tree。一个node可能为0也可能为1
: . 它的
: value为1,当且仅当它所有的child的value均为1.
: 1
: |
: 1 2

u*****n
发帖数: 126
6
已经添加了些细节。如果还不懂请发我message。

【在 j******a 的大作中提到】
: 赞lz。
: 第三题还是不明白什么意思?能具体说说嘛?谢了

t**********h
发帖数: 2273
7
我也没明白,不可能都是整点吧?必然有不是整数的坐标(x,y)。是不是只要求出所
有整数的(x,y)?

【在 u*****n 的大作中提到】
: 已经添加了些细节。如果还不懂请发我message。
u*****n
发帖数: 126
8
屏幕上的像素必然是整点啊。需要用整点来模拟圆的形状。

【在 t**********h 的大作中提到】
: 我也没明白,不可能都是整点吧?必然有不是整数的坐标(x,y)。是不是只要求出所
: 有整数的(x,y)?

t**********h
发帖数: 2273
9
我以为是数学题。搞屏幕上,整数就make sense了。搞出来八分之一挨着对折就好了。
多谢

【在 u*****n 的大作中提到】
: 屏幕上的像素必然是整点啊。需要用整点来模拟圆的形状。
y***n
发帖数: 1594
10
华人美女HR给楼主留email吗,抓住机会,不要给阿三领先一步。
相关主题
问一道facebook的面试题请教个面经里的设计题
求指点一道G家Iterator的题目L家的高频题merge k sorted arrays giving iterators求讨论!
问个最近面试里的题目职业杯另外一道
进入JobHunting版参与讨论
u*****n
发帖数: 126
11
当然,面试中没有遇到限制语言的公司。

【在 j**********3 的大作中提到】
: 这家让用java么
w********o
发帖数: 440
12
不明白这公司有啥去头

为1

【在 u*****n 的大作中提到】
: 在他们家遇到了两个傻B阿三。一个不停的纠正我的逗号和分号,另外一个给的hints都
: 是废话。最后挂了。他们家的阿三是我面过的所有公司中最极品的。所以面试他们家要
: 小心傻B阿三。当然他们家的华人美女HR相当的nice,是我遇到的所有HR中最nice的。
: 总共面了四轮:
: 第一轮:定义buddy system为一棵complete binary tree。一个node可能为0也可能为1
: . 它的
: value为1,当且仅当它所有的child的value均为1.
: 1
: |
: 1 2

m*****k
发帖数: 731
13
buddy system,
谁能讲讲?
根据楼主的描述,叶子必然为0,那么就没有node会是1了,
还是我理解错了?

为1

【在 u*****n 的大作中提到】
: 在他们家遇到了两个傻B阿三。一个不停的纠正我的逗号和分号,另外一个给的hints都
: 是废话。最后挂了。他们家的阿三是我面过的所有公司中最极品的。所以面试他们家要
: 小心傻B阿三。当然他们家的华人美女HR相当的nice,是我遇到的所有HR中最nice的。
: 总共面了四轮:
: 第一轮:定义buddy system为一棵complete binary tree。一个node可能为0也可能为1
: . 它的
: value为1,当且仅当它所有的child的value均为1.
: 1
: |
: 1 2

u*****n
发帖数: 126
14
叶子不一定为0。事实上,这两个function的主要功能就是设置在一个范围内叶子的数
值。而这些数值也会影响到它的祖先的数值。

【在 m*****k 的大作中提到】
: buddy system,
: 谁能讲讲?
: 根据楼主的描述,叶子必然为0,那么就没有node会是1了,
: 还是我理解错了?
:
: 为1

J*********g
发帖数: 96
15

为1
谢谢分享,正在准备第一轮电面,有啥经验,难道真的是virtual概念考的很多吗?

【在 u*****n 的大作中提到】
: 在他们家遇到了两个傻B阿三。一个不停的纠正我的逗号和分号,另外一个给的hints都
: 是废话。最后挂了。他们家的阿三是我面过的所有公司中最极品的。所以面试他们家要
: 小心傻B阿三。当然他们家的华人美女HR相当的nice,是我遇到的所有HR中最nice的。
: 总共面了四轮:
: 第一轮:定义buddy system为一棵complete binary tree。一个node可能为0也可能为1
: . 它的
: value为1,当且仅当它所有的child的value均为1.
: 1
: |
: 1 2

j**********3
发帖数: 3211
16
为什么是1/8不是1/4?
u*****n
发帖数: 126
17
因为两侧点的密度不一样。

【在 j**********3 的大作中提到】
: 为什么是1/8不是1/4?
j**********3
发帖数: 3211
18
木有理解啊。。。
我觉得整个第一个1/4都要自己算一下吧?从1/8到1/4没办法用0-1/4推导出来。。

【在 u*****n 的大作中提到】
: 因为两侧点的密度不一样。
u*****n
发帖数: 126
19
(x,y) -> (y,x)

【在 j**********3 的大作中提到】
: 木有理解啊。。。
: 我觉得整个第一个1/4都要自己算一下吧?从1/8到1/4没办法用0-1/4推导出来。。

j**********3
发帖数: 3211
20
额。。。好聪明。。我开始怀疑我智商了。。。

【在 u*****n 的大作中提到】
: (x,y) -> (y,x)
相关主题
what is the internal implementation of Dequecombinations 有没有 iterative的方法阿 ?
讨论一个题目fb国内申请的曲折经历+电面
一个实际碰到的问题刷了半天题
进入JobHunting版参与讨论
j**********3
发帖数: 3211
21
我能再请教一下第2题怎么做么?谢谢了!
u*****n
发帖数: 126
22
这题的重点是queue是atomic的,那么你应该怎么去lock呢?
如果你这样的题不熟悉,建议你复习下EPI上的相关章节。应该不难。

【在 j**********3 的大作中提到】
: 我能再请教一下第2题怎么做么?谢谢了!
j**********3
发帖数: 3211
23
EPI都上来了啊。。。这算哪一章的啊。。。我只看了binary tree, bst, dp的章节。
。。
你面经里。。。我竟然一个都不会。。。

【在 u*****n 的大作中提到】
: 这题的重点是queue是atomic的,那么你应该怎么去lock呢?
: 如果你这样的题不熟悉,建议你复习下EPI上的相关章节。应该不难。

u*****n
发帖数: 126
24
Ch18 Parallel computing
j**********3
发帖数: 3211
25
我去看看,太谢谢lz了。
另外第4题,实在不会clear o(1), 就开贴子问了。但感觉我们都走错方向了。大牛可
否进去指导一下?
贴子的link是:
http://www.mitbbs.com/article_t/JobHunting/32706095.html

【在 u*****n 的大作中提到】
: Ch18 Parallel computing
e****t
发帖数: 1
26
第一题,画的图没怎么看懂,不知道一个原来为1的节点置0,它的子节点怎么处理,是
所有子节点都置0?感觉不需要,下面的python实现中仅把该节点下所有左孩子置0:
def setbit_down(A, x, n):
if x>=n:
return
if 2*x+1<=n and A[2*x+1]==0:
A[2*x+1]=1
setbit_down(A,2*x+1,n)
if 2*x+2<=n and A[2*x+2]==0:
A[2*x+2]=1
setbit_down(A,2*x+2,n)

def set_bit(A, pos, length):
if not A or pos<0 or length<=0:
return
n = len(A)-1 #last index of A
# pos+length和2*pos+1取较小的即可,避免重复操作,如果较小值仍然大于len(
A),则到len(A)为止
for x in range(pos, min(n+1,min(pos+length, 2*pos+1))):
# set self
if A[x] == 1:
continue
A[x]=1
# set descendants
setbit_down(A,x,n)
# set ancestors
while x>0:
# 如果该节点为1,并且它的邻居也是1,那么父亲也置为1,一直到根节
点为止
if (x%2==0 and A[x-1]==1) or (x%2==1 and x A[(x-1)/2] = 1
x = (x-1)/2
def clear_bit(A, pos, length):
if not A or pos<0 or length<=0:
return
n = len(A)-1 #last index of A
for x in range(pos, min(n+1, pos+length)):
# clear self
if A[x]==0:
continue
A[x]=0
# clear descendants
while 2*x+1<=n:
A[2*x+1] = 0
x=2*x+1
# clear ancestors
while x>0:
if A[(x-1)/2]==0:
break
A[(x-1)/2] = 0
x = (x-1)/2
第二题能再解释下么,题目没有看懂,有以下几个问题:
1. addTask。在trigger之前把task加入task queue,在trigger之后直接运行task。
前半句能理解,但后半句”在trigger之后直接运行task“是什么意思?
2. 感觉队列会有个长度限制,设为N,trigger感觉就是flush,是消费者,每时每刻都
在不停弹出队首,并且执行task,addTask是生产者,调用一次addTask就把一个task加
入队尾。 请问我的理解正确吗?
3. 另外请问是一个线程运行trigger,另一个线程运行addTask么,还是有多个线程运
行addTask?
4. 如果刚运行trigger的时候发现队列为空,是等待addTask把task加入队列,还是直
接退出
5. 如果刚运行addTask的时候发现队列满了,是等待队列不满,还是直接退出?
下面是trigger为非阻塞(队空退出),addTask为阻塞(队满等待)的情况,请高手指
正,有没有race condition或者其他问题
Monitor:
addTask(task):
if count == N:
wait(NOTFULL)
q.push(task)
count++
trigger():
while q:
task = q.pop()
count--
if count == N-1:
signal(NOTFULL)
execute_task
第三题,还是没能理解楼主“当X+1时,Y的值或者不变或者-1”的意思,我的做法是
,假设圆方程是x*x+y*y=r2,x从0开始,到x*x>r2为止,对每个x,二分搜索y,使圆方
程成立
from sets import Set
def draw_circle_bi_search(r2):
result = Set([])
x = 1
y = 0
while x*x <= r2:
y_start = 0
y_end = x
while y_start <= y_end:
y_mid = y_start+(y_end-y_start)/2
if x*x + y_mid*y_mid == r2:
result.update(Set([(x,y_mid),(x,-y_mid),(-x,-y_mid),(-x,y_
mid),(y_mid,x),(y_mid,-x),(-y_mid,-x),(-y_mid,x)]))
break
elif x*x + y_mid*y_mid < r2:
y_start = y_mid+1
else:
y_end = y_mid-1
x+=1
return result
第四题,参考百度百科http://baike.baidu.com/view/1207363.htm
最后一段
h*******e
发帖数: 1377
27
这第四轮 最后一题 四个O(1)的解法是什么。
h*******e
发帖数: 1377
28
hashmap 加 double linkedlist怎样。
u*****n
发帖数: 126
29
在他们家遇到了两个傻B阿三。一个不停的纠正我的逗号和分号,另外一个给的hints都
是废话。最后挂了。他们家的阿三是我面过的所有公司中最极品的。所以面试他们家要
小心傻B阿三。当然他们家的华人美女HR相当的nice,是我遇到的所有HR中最nice的。
总共面了四轮:
第一轮:定义buddy system为一棵complete binary tree。一个node可能为0也可能为1
. 它的
value为1,当且仅当它所有的child的value均为1.
1
|
1 2
| |
1 2 3 4
| | | |
1 2 3 4 5 6 7 8
实现下列的method。
1' clearBit(int offset, int len);
2' setBit(int offset, int len);
第二轮:设计一个task dispatching system,里面有一个task queue和两个function。
1’ trigger。这个function运行并清空task queue中所有的tasks。
2‘ addTask。在trigger之前把task加入task queue,在trigger之后直接运行task。
第三轮:产生一个圆上的所有坐标。不用sqrt, sin, cos等内建函数。
提示:所有的点都是整点。首先我们可以利用对称性把圆分成8块,先画出0-45度角内
的点,然后映射之。对于其中0-45度角中的点,当X+1时,Y的值或者不变或者-1,然
后放入圆方程中看哪一个是对的。
第四轮:设计一个Map,满足下面的复杂度。
add: O(1) deletion: O(1) lookup: O(1) clear:O(1) iterate: O(number of
elements)。
提示:
如果我们用randomly accessed array,复杂度如下:
add: O(1) deletion: O(1) lookup: O(1) clear: O(size of array) iterate:
O(size of array)
如果我么用sequential array, 复杂度如下:
add: O(1) deletion: O(number of elements) lookup:O(number of elements)
clear: O(1) iterate:O(number of elements)
所以我们需要把这两个方法整合起来。
o**********e
发帖数: 18403
30
谢谢分享! 祝找到好工作!
希望别的 purestorage的同学
能分享一下经验和观察。
大家去nice一点,支持老中HR吧。
以后记住烙印的名字。 人肉伺候。。。
相关主题
L家coding question一问请问pure storage 的那道map 数据结构题
M家onsite题一道请教一道数据结构的设计题
请教一道面试题一道经典涉及多线程,互斥访问的面试题
进入JobHunting版参与讨论
j******a
发帖数: 55
31
赞lz。
第三题还是不明白什么意思?能具体说说嘛?谢了
j**********3
发帖数: 3211
32
这家让用java么
t**********h
发帖数: 2273
33
不错,准备搞

为1

【在 u*****n 的大作中提到】
: 在他们家遇到了两个傻B阿三。一个不停的纠正我的逗号和分号,另外一个给的hints都
: 是废话。最后挂了。他们家的阿三是我面过的所有公司中最极品的。所以面试他们家要
: 小心傻B阿三。当然他们家的华人美女HR相当的nice,是我遇到的所有HR中最nice的。
: 总共面了四轮:
: 第一轮:定义buddy system为一棵complete binary tree。一个node可能为0也可能为1
: . 它的
: value为1,当且仅当它所有的child的value均为1.
: 1
: |
: 1 2

u*****n
发帖数: 126
34
已经添加了些细节。如果还不懂请发我message。

【在 j******a 的大作中提到】
: 赞lz。
: 第三题还是不明白什么意思?能具体说说嘛?谢了

t**********h
发帖数: 2273
35
我也没明白,不可能都是整点吧?必然有不是整数的坐标(x,y)。是不是只要求出所
有整数的(x,y)?

【在 u*****n 的大作中提到】
: 已经添加了些细节。如果还不懂请发我message。
u*****n
发帖数: 126
36
屏幕上的像素必然是整点啊。需要用整点来模拟圆的形状。

【在 t**********h 的大作中提到】
: 我也没明白,不可能都是整点吧?必然有不是整数的坐标(x,y)。是不是只要求出所
: 有整数的(x,y)?

t**********h
发帖数: 2273
37
我以为是数学题。搞屏幕上,整数就make sense了。搞出来八分之一挨着对折就好了。
多谢

【在 u*****n 的大作中提到】
: 屏幕上的像素必然是整点啊。需要用整点来模拟圆的形状。
y***n
发帖数: 1594
38
华人美女HR给楼主留email吗,抓住机会,不要给阿三领先一步。
u*****n
发帖数: 126
39
当然,面试中没有遇到限制语言的公司。

【在 j**********3 的大作中提到】
: 这家让用java么
w********o
发帖数: 440
40
不明白这公司有啥去头

为1

【在 u*****n 的大作中提到】
: 在他们家遇到了两个傻B阿三。一个不停的纠正我的逗号和分号,另外一个给的hints都
: 是废话。最后挂了。他们家的阿三是我面过的所有公司中最极品的。所以面试他们家要
: 小心傻B阿三。当然他们家的华人美女HR相当的nice,是我遇到的所有HR中最nice的。
: 总共面了四轮:
: 第一轮:定义buddy system为一棵complete binary tree。一个node可能为0也可能为1
: . 它的
: value为1,当且仅当它所有的child的value均为1.
: 1
: |
: 1 2

相关主题
一道经典涉及多线程,互斥访问的面试题求指点一道G家Iterator的题目
跪求pure storage的面经!谢谢!问个最近面试里的题目
问一道facebook的面试题请教个面经里的设计题
进入JobHunting版参与讨论
m*****k
发帖数: 731
41
buddy system,
谁能讲讲?
根据楼主的描述,叶子必然为0,那么就没有node会是1了,
还是我理解错了?

为1

【在 u*****n 的大作中提到】
: 在他们家遇到了两个傻B阿三。一个不停的纠正我的逗号和分号,另外一个给的hints都
: 是废话。最后挂了。他们家的阿三是我面过的所有公司中最极品的。所以面试他们家要
: 小心傻B阿三。当然他们家的华人美女HR相当的nice,是我遇到的所有HR中最nice的。
: 总共面了四轮:
: 第一轮:定义buddy system为一棵complete binary tree。一个node可能为0也可能为1
: . 它的
: value为1,当且仅当它所有的child的value均为1.
: 1
: |
: 1 2

u*****n
发帖数: 126
42
叶子不一定为0。事实上,这两个function的主要功能就是设置在一个范围内叶子的数
值。而这些数值也会影响到它的祖先的数值。

【在 m*****k 的大作中提到】
: buddy system,
: 谁能讲讲?
: 根据楼主的描述,叶子必然为0,那么就没有node会是1了,
: 还是我理解错了?
:
: 为1

J*********g
发帖数: 96
43

为1
谢谢分享,正在准备第一轮电面,有啥经验,难道真的是virtual概念考的很多吗?

【在 u*****n 的大作中提到】
: 在他们家遇到了两个傻B阿三。一个不停的纠正我的逗号和分号,另外一个给的hints都
: 是废话。最后挂了。他们家的阿三是我面过的所有公司中最极品的。所以面试他们家要
: 小心傻B阿三。当然他们家的华人美女HR相当的nice,是我遇到的所有HR中最nice的。
: 总共面了四轮:
: 第一轮:定义buddy system为一棵complete binary tree。一个node可能为0也可能为1
: . 它的
: value为1,当且仅当它所有的child的value均为1.
: 1
: |
: 1 2

j**********3
发帖数: 3211
44
为什么是1/8不是1/4?
u*****n
发帖数: 126
45
因为两侧点的密度不一样。

【在 j**********3 的大作中提到】
: 为什么是1/8不是1/4?
j**********3
发帖数: 3211
46
木有理解啊。。。
我觉得整个第一个1/4都要自己算一下吧?从1/8到1/4没办法用0-1/4推导出来。。

【在 u*****n 的大作中提到】
: 因为两侧点的密度不一样。
u*****n
发帖数: 126
47
(x,y) -> (y,x)

【在 j**********3 的大作中提到】
: 木有理解啊。。。
: 我觉得整个第一个1/4都要自己算一下吧?从1/8到1/4没办法用0-1/4推导出来。。

j**********3
发帖数: 3211
48
额。。。好聪明。。我开始怀疑我智商了。。。

【在 u*****n 的大作中提到】
: (x,y) -> (y,x)
j**********3
发帖数: 3211
49
我能再请教一下第2题怎么做么?谢谢了!
u*****n
发帖数: 126
50
这题的重点是queue是atomic的,那么你应该怎么去lock呢?
如果你这样的题不熟悉,建议你复习下EPI上的相关章节。应该不难。

【在 j**********3 的大作中提到】
: 我能再请教一下第2题怎么做么?谢谢了!
相关主题
L家的高频题merge k sorted arrays giving iterators求讨论!讨论一个题目
职业杯另外一道一个实际碰到的问题
what is the internal implementation of Dequecombinations 有没有 iterative的方法阿 ?
进入JobHunting版参与讨论
j**********3
发帖数: 3211
51
EPI都上来了啊。。。这算哪一章的啊。。。我只看了binary tree, bst, dp的章节。
。。
你面经里。。。我竟然一个都不会。。。

【在 u*****n 的大作中提到】
: 这题的重点是queue是atomic的,那么你应该怎么去lock呢?
: 如果你这样的题不熟悉,建议你复习下EPI上的相关章节。应该不难。

u*****n
发帖数: 126
52
Ch18 Parallel computing
j**********3
发帖数: 3211
53
我去看看,太谢谢lz了。
另外第4题,实在不会clear o(1), 就开贴子问了。但感觉我们都走错方向了。大牛可
否进去指导一下?
贴子的link是:
http://www.mitbbs.com/article_t/JobHunting/32706095.html

【在 u*****n 的大作中提到】
: Ch18 Parallel computing
h*******e
发帖数: 1377
54
这第四轮 最后一题 四个O(1)的解法是什么。
h*******e
发帖数: 1377
55
hashmap 加 double linkedlist怎样。
u***n
发帖数: 117
56
不是很明白这里第一题和第二题。
第一轮: offset 和 len 代表的含义是? (binary tree是以array形式存储?这能解
释offset,但len呢?array的总长度?似乎不太make sense)
第二轮: 这里的考点是在call这两个方法时需要对队列加锁来达到正确性吗?
我基本思路是需要设置一个boolean变量 a 来确认是否已经trigger了。
trigger(){
aquire(mutex_a);
a = true;
dispatch all tasks in the queue;
head = null;
tail = null;
release(mutex_a);
}
addtask(){
aquire(mutex_a);
if(a)
dispatch the task;
else{
if(head == null){
head = task;
tail = task;
} else{
tail.next = task;
tail = task;
}
}
release(mutex_a);
}
p******o
发帖数: 4
57
udben 什么时候onsite? 同样不明白第二题,queue atomic怎么影响lock策略?

【在 u***n 的大作中提到】
: 不是很明白这里第一题和第二题。
: 第一轮: offset 和 len 代表的含义是? (binary tree是以array形式存储?这能解
: 释offset,但len呢?array的总长度?似乎不太make sense)
: 第二轮: 这里的考点是在call这两个方法时需要对队列加锁来达到正确性吗?
: 我基本思路是需要设置一个boolean变量 a 来确认是否已经trigger了。
: trigger(){
: aquire(mutex_a);
: a = true;
: dispatch all tasks in the queue;
: head = null;

I*******d
发帖数: 108
58
还是没看懂第一道题。。。一个node可能为0也可能为1
. 它的
value为1,当且仅当它所有的child的value均为1.
就是说不是所有的child的value都为1的话这个node的value可能为0??但题目下面的
这个图怎么不make sense.
还有
1' clearBit(int offset, int len);里面的len是啥意思?
j****l
发帖数: 687
59
有一个child的value为0的话这个node的value为0
--- clearBits(int offset, int len);里面的len是啥意思?
这个函数都是从最下面一层开始clearBit。 将offset到(offse
t+len-1)设置为0。
这个题目假设bit存储在bits[level][number]里。

【在 I*******d 的大作中提到】
: 还是没看懂第一道题。。。一个node可能为0也可能为1
: . 它的
: value为1,当且仅当它所有的child的value均为1.
: 就是说不是所有的child的value都为1的话这个node的value可能为0??但题目下面的
: 这个图怎么不make sense.
: 还有
: 1' clearBit(int offset, int len);里面的len是啥意思?

u*****n
发帖数: 126
60
这个解法不是最优解。

【在 u***n 的大作中提到】
: 不是很明白这里第一题和第二题。
: 第一轮: offset 和 len 代表的含义是? (binary tree是以array形式存储?这能解
: 释offset,但len呢?array的总长度?似乎不太make sense)
: 第二轮: 这里的考点是在call这两个方法时需要对队列加锁来达到正确性吗?
: 我基本思路是需要设置一个boolean变量 a 来确认是否已经trigger了。
: trigger(){
: aquire(mutex_a);
: a = true;
: dispatch all tasks in the queue;
: head = null;

相关主题
fb国内申请的曲折经历+电面M家onsite题一道
刷了半天题请教一道面试题
L家coding question一问请问pure storage 的那道map 数据结构题
进入JobHunting版参与讨论
u*****n
发帖数: 126
61
正解

【在 j****l 的大作中提到】
: 有一个child的value为0的话这个node的value为0
: --- clearBits(int offset, int len);里面的len是啥意思?
: 这个函数都是从最下面一层开始clearBit。 将offset到(offse
: t+len-1)设置为0。
: 这个题目假设bit存储在bits[level][number]里。

p******o
发帖数: 4
62
请问unichen大牛,怎么才是最优,能给一点儿思路吗?atomic operation怎么影响
lock? 明天就要onsite了,心急如焚~~还有最后一题怎么做到clear() O(1), 同求思路
。。
多谢好人!
多谢好人!
多谢好人!

【在 u*****n 的大作中提到】
: 这个解法不是最优解。
u*****n
发帖数: 126
63
1‘ 考虑啥时候加锁。
4‘ size可以告诉你哪些元素是有效的。
y*****i
发帖数: 141
64
今天去了个2轮的onsite,问了2和4. 感谢楼主!这公司前途怎么样我不懂,位置太好
了,在castro上。适合爱吃拉面的人。。另外他们家邻居竟然是Quora。。。
u***n
发帖数: 117
65
谢谢jewwel的解答,那就是说offset 和 len都是指最下面一层的,对吗?另外有个小
细节想请教,用二维数组bits[level][number]存储是他们给出的吗?每个level的
number个数是不一致的,我本来以为他们是要用一位数组来存。

【在 j****l 的大作中提到】
: 有一个child的value为0的话这个node的value为0
: --- clearBits(int offset, int len);里面的len是啥意思?
: 这个函数都是从最下面一层开始clearBit。 将offset到(offse
: t+len-1)设置为0。
: 这个题目假设bit存储在bits[level][number]里。

d*****h
发帖数: 8
66
你的onsite是分两次的吗?求分享下你的完整的解题思路,谢谢。尤其是第二题

【在 y*****i 的大作中提到】
: 今天去了个2轮的onsite,问了2和4. 感谢楼主!这公司前途怎么样我不懂,位置太好
: 了,在castro上。适合爱吃拉面的人。。另外他们家邻居竟然是Quora。。。

d*****h
发帖数: 8
67
LZ, 第一题就是glassdoor上大家说的buddy bitmap吗?这题看起来就很正常啊但怎么
好多人说难。是有什么限制或者follow up吗?
第二题的addTask里说的“trigger之后”是指trigger被调用之后但是还在运行还是指
trigger被调用之后都算?
第四题: 我的解法是用一个Hashmap,加一个field: version。 entry的形式是<
Integer, Node>
class Node
{
int value;
int version;
}
每次clear时map的version++。这样是符合要求的吗?
谢谢~

为1

【在 u*****n 的大作中提到】
: 在他们家遇到了两个傻B阿三。一个不停的纠正我的逗号和分号,另外一个给的hints都
: 是废话。最后挂了。他们家的阿三是我面过的所有公司中最极品的。所以面试他们家要
: 小心傻B阿三。当然他们家的华人美女HR相当的nice,是我遇到的所有HR中最nice的。
: 总共面了四轮:
: 第一轮:定义buddy system为一棵complete binary tree。一个node可能为0也可能为1
: . 它的
: value为1,当且仅当它所有的child的value均为1.
: 1
: |
: 1 2

d*****h
发帖数: 8
68
请问你是已经onsite完了吗?能分享下你的面经和解法吗?谢谢

【在 p******o 的大作中提到】
: 请问unichen大牛,怎么才是最优,能给一点儿思路吗?atomic operation怎么影响
: lock? 明天就要onsite了,心急如焚~~还有最后一题怎么做到clear() O(1), 同求思路
: 。。
: 多谢好人!
: 多谢好人!
: 多谢好人!

d*****h
发帖数: 8
69
如果addTask()不变, trigger()改成
trigger(){
aquire(mutex_a);
a = true;
release(mutex_a);
dispatch all tasks in the queue;
head = null;
tail = null;
}
这样呢?

【在 u*****n 的大作中提到】
: 这个解法不是最优解。
j****l
发帖数: 687
70
Q: offset 和 len都是指最下面一层的,对吗?
A: yes
Q: 用二维数组bits[level][number]存储是他们给出的吗?
A: yes

【在 u***n 的大作中提到】
: 谢谢jewwel的解答,那就是说offset 和 len都是指最下面一层的,对吗?另外有个小
: 细节想请教,用二维数组bits[level][number]存储是他们给出的吗?每个level的
: number个数是不一致的,我本来以为他们是要用一位数组来存。

相关主题
请问pure storage 的那道map 数据结构题跪求pure storage的面经!谢谢!
请教一道数据结构的设计题问一道facebook的面试题
一道经典涉及多线程,互斥访问的面试题求指点一道G家Iterator的题目
进入JobHunting版参与讨论
s********x
发帖数: 81
71
第四题的解法不错,但是iteration的时候,复杂度是O(n),n等于hash size的数量

【在 d*****h 的大作中提到】
: LZ, 第一题就是glassdoor上大家说的buddy bitmap吗?这题看起来就很正常啊但怎么
: 好多人说难。是有什么限制或者follow up吗?
: 第二题的addTask里说的“trigger之后”是指trigger被调用之后但是还在运行还是指
: trigger被调用之后都算?
: 第四题: 我的解法是用一个Hashmap,加一个field: version。 entry的形式是<
: Integer, Node>
: class Node
: {
: int value;
: int version;

a*********2
发帖数: 187
72
请问一下第四轮的那题,
要想做到在hash table里面,O(1)clear, 是否只能选择hash table allocate在连续
的存储空间里,这样最后可以一次全部free掉?
如果这样的话,hash table是不能有任何conflict,也不能在table里面存放链表?
实在没有头绪,请各位指教.

为1

【在 u*****n 的大作中提到】
: 在他们家遇到了两个傻B阿三。一个不停的纠正我的逗号和分号,另外一个给的hints都
: 是废话。最后挂了。他们家的阿三是我面过的所有公司中最极品的。所以面试他们家要
: 小心傻B阿三。当然他们家的华人美女HR相当的nice,是我遇到的所有HR中最nice的。
: 总共面了四轮:
: 第一轮:定义buddy system为一棵complete binary tree。一个node可能为0也可能为1
: . 它的
: value为1,当且仅当它所有的child的value均为1.
: 1
: |
: 1 2

a*********2
发帖数: 187
73
请问第四题,hash table是否可以认为是理想的,不会产生conflict的? 实在不知道
clear O(1)应该如何才能做到.
z***y
发帖数: 73
74
哈哈哈哈哈哈。
本来觉得他们公司挺好的,结果上glassdoor一看,各种搞笑。
说他们家面试题目有的比较晦涩,给了提示后就更加晦涩啦;有得吐槽,自己压根不懂
C++,简历也跟C++没半毛钱关系,结果电面第一个问题就是C++。
据说他们家的经典题目:
1.C++对象内存布局;
2.Buddy bitmap,应该就是lz说的这个;
3.Draw circle,应该也是lz说的;
4.设计一个key value系统,也是lz说的题目。
Buddy那题感觉是做内存管理的,假设内存池可以支持256K 128K 64K 32K四种大小,那
么就可以理解成一个这种树,可以分配256K必须他下面的2个128k可用,递归下去所有
子节点都要为可用。很好理解。
a*********2
发帖数: 187
75
unichen的面经里面有四轮的题,请问一下,pure storage的onsite,有第5道题吗?
h****j
发帖数: 15
76
感谢楼主,对于第二题,有些疑问,楼主的描述不太像一个通常的task dispatch
system,一般addtask里不直接运行task的。
请问一下addTask()和trigger()是运行在两个线程里的么?
两个线程共享一个task queue,这个queue需要用锁来保护。
trigger线程里面有一个for loop,不断的从queue里面拿出task执行。如果队列空,停
等。
addtask线程里面不断的将新的task写入queue里面
这个理解对么?多谢!
u***n
发帖数: 117
77
不是很明白这里第一题和第二题。
第一轮: offset 和 len 代表的含义是? (binary tree是以array形式存储?这能解
释offset,但len呢?array的总长度?似乎不太make sense)
第二轮: 这里的考点是在call这两个方法时需要对队列加锁来达到正确性吗?
我基本思路是需要设置一个boolean变量 a 来确认是否已经trigger了。
trigger(){
aquire(mutex_a);
a = true;
dispatch all tasks in the queue;
head = null;
tail = null;
release(mutex_a);
}
addtask(){
aquire(mutex_a);
if(a)
dispatch the task;
else{
if(head == null){
head = task;
tail = task;
} else{
tail.next = task;
tail = task;
}
}
release(mutex_a);
}
p******o
发帖数: 4
78
udben 什么时候onsite? 同样不明白第二题,queue atomic怎么影响lock策略?

【在 u***n 的大作中提到】
: 不是很明白这里第一题和第二题。
: 第一轮: offset 和 len 代表的含义是? (binary tree是以array形式存储?这能解
: 释offset,但len呢?array的总长度?似乎不太make sense)
: 第二轮: 这里的考点是在call这两个方法时需要对队列加锁来达到正确性吗?
: 我基本思路是需要设置一个boolean变量 a 来确认是否已经trigger了。
: trigger(){
: aquire(mutex_a);
: a = true;
: dispatch all tasks in the queue;
: head = null;

I*******d
发帖数: 108
79
还是没看懂第一道题。。。一个node可能为0也可能为1
. 它的
value为1,当且仅当它所有的child的value均为1.
就是说不是所有的child的value都为1的话这个node的value可能为0??但题目下面的
这个图怎么不make sense.
还有
1' clearBit(int offset, int len);里面的len是啥意思?
j****l
发帖数: 687
80
有一个child的value为0的话这个node的value为0
--- clearBits(int offset, int len);里面的len是啥意思?
这个函数都是从最下面一层开始clearBit。 将offset到(offse
t+len-1)设置为0。
这个题目假设bit存储在bits[level][number]里。

【在 I*******d 的大作中提到】
: 还是没看懂第一道题。。。一个node可能为0也可能为1
: . 它的
: value为1,当且仅当它所有的child的value均为1.
: 就是说不是所有的child的value都为1的话这个node的value可能为0??但题目下面的
: 这个图怎么不make sense.
: 还有
: 1' clearBit(int offset, int len);里面的len是啥意思?

相关主题
问个最近面试里的题目职业杯另外一道
请教个面经里的设计题what is the internal implementation of Deque
L家的高频题merge k sorted arrays giving iterators求讨论!讨论一个题目
进入JobHunting版参与讨论
u*****n
发帖数: 126
81
这个解法不是最优解。

【在 u***n 的大作中提到】
: 不是很明白这里第一题和第二题。
: 第一轮: offset 和 len 代表的含义是? (binary tree是以array形式存储?这能解
: 释offset,但len呢?array的总长度?似乎不太make sense)
: 第二轮: 这里的考点是在call这两个方法时需要对队列加锁来达到正确性吗?
: 我基本思路是需要设置一个boolean变量 a 来确认是否已经trigger了。
: trigger(){
: aquire(mutex_a);
: a = true;
: dispatch all tasks in the queue;
: head = null;

u*****n
发帖数: 126
82
正解

【在 j****l 的大作中提到】
: 有一个child的value为0的话这个node的value为0
: --- clearBits(int offset, int len);里面的len是啥意思?
: 这个函数都是从最下面一层开始clearBit。 将offset到(offse
: t+len-1)设置为0。
: 这个题目假设bit存储在bits[level][number]里。

p******o
发帖数: 4
83
请问unichen大牛,怎么才是最优,能给一点儿思路吗?atomic operation怎么影响
lock? 明天就要onsite了,心急如焚~~还有最后一题怎么做到clear() O(1), 同求思路
。。
多谢好人!
多谢好人!
多谢好人!

【在 u*****n 的大作中提到】
: 这个解法不是最优解。
u*****n
发帖数: 126
84
1‘ 考虑啥时候加锁。
4‘ size可以告诉你哪些元素是有效的。
y*****i
发帖数: 141
85
今天去了个2轮的onsite,问了2和4. 感谢楼主!这公司前途怎么样我不懂,位置太好
了,在castro上。适合爱吃拉面的人。。另外他们家邻居竟然是Quora。。。
u***n
发帖数: 117
86
谢谢jewwel的解答,那就是说offset 和 len都是指最下面一层的,对吗?另外有个小
细节想请教,用二维数组bits[level][number]存储是他们给出的吗?每个level的
number个数是不一致的,我本来以为他们是要用一位数组来存。

【在 j****l 的大作中提到】
: 有一个child的value为0的话这个node的value为0
: --- clearBits(int offset, int len);里面的len是啥意思?
: 这个函数都是从最下面一层开始clearBit。 将offset到(offse
: t+len-1)设置为0。
: 这个题目假设bit存储在bits[level][number]里。

d*****h
发帖数: 8
87
你的onsite是分两次的吗?求分享下你的完整的解题思路,谢谢。尤其是第二题

【在 y*****i 的大作中提到】
: 今天去了个2轮的onsite,问了2和4. 感谢楼主!这公司前途怎么样我不懂,位置太好
: 了,在castro上。适合爱吃拉面的人。。另外他们家邻居竟然是Quora。。。

d*****h
发帖数: 8
88
LZ, 第一题就是glassdoor上大家说的buddy bitmap吗?这题看起来就很正常啊但怎么
好多人说难。是有什么限制或者follow up吗?
第二题的addTask里说的“trigger之后”是指trigger被调用之后但是还在运行还是指
trigger被调用之后都算?
第四题: 我的解法是用一个Hashmap,加一个field: version。 entry的形式是<
Integer, Node>
class Node
{
int value;
int version;
}
每次clear时map的version++。这样是符合要求的吗?
谢谢~

为1

【在 u*****n 的大作中提到】
: 在他们家遇到了两个傻B阿三。一个不停的纠正我的逗号和分号,另外一个给的hints都
: 是废话。最后挂了。他们家的阿三是我面过的所有公司中最极品的。所以面试他们家要
: 小心傻B阿三。当然他们家的华人美女HR相当的nice,是我遇到的所有HR中最nice的。
: 总共面了四轮:
: 第一轮:定义buddy system为一棵complete binary tree。一个node可能为0也可能为1
: . 它的
: value为1,当且仅当它所有的child的value均为1.
: 1
: |
: 1 2

d*****h
发帖数: 8
89
请问你是已经onsite完了吗?能分享下你的面经和解法吗?谢谢

【在 p******o 的大作中提到】
: 请问unichen大牛,怎么才是最优,能给一点儿思路吗?atomic operation怎么影响
: lock? 明天就要onsite了,心急如焚~~还有最后一题怎么做到clear() O(1), 同求思路
: 。。
: 多谢好人!
: 多谢好人!
: 多谢好人!

d*****h
发帖数: 8
90
如果addTask()不变, trigger()改成
trigger(){
aquire(mutex_a);
a = true;
release(mutex_a);
dispatch all tasks in the queue;
head = null;
tail = null;
}
这样呢?

【在 u*****n 的大作中提到】
: 这个解法不是最优解。
相关主题
一个实际碰到的问题刷了半天题
combinations 有没有 iterative的方法阿 ?L家coding question一问
fb国内申请的曲折经历+电面M家onsite题一道
进入JobHunting版参与讨论
j****l
发帖数: 687
91
Q: offset 和 len都是指最下面一层的,对吗?
A: yes
Q: 用二维数组bits[level][number]存储是他们给出的吗?
A: yes

【在 u***n 的大作中提到】
: 谢谢jewwel的解答,那就是说offset 和 len都是指最下面一层的,对吗?另外有个小
: 细节想请教,用二维数组bits[level][number]存储是他们给出的吗?每个level的
: number个数是不一致的,我本来以为他们是要用一位数组来存。

s********x
发帖数: 81
92
第四题的解法不错,但是iteration的时候,复杂度是O(n),n等于hash size的数量

【在 d*****h 的大作中提到】
: LZ, 第一题就是glassdoor上大家说的buddy bitmap吗?这题看起来就很正常啊但怎么
: 好多人说难。是有什么限制或者follow up吗?
: 第二题的addTask里说的“trigger之后”是指trigger被调用之后但是还在运行还是指
: trigger被调用之后都算?
: 第四题: 我的解法是用一个Hashmap,加一个field: version。 entry的形式是<
: Integer, Node>
: class Node
: {
: int value;
: int version;

a*********2
发帖数: 187
93
请问一下第四轮的那题,
要想做到在hash table里面,O(1)clear, 是否只能选择hash table allocate在连续
的存储空间里,这样最后可以一次全部free掉?
如果这样的话,hash table是不能有任何conflict,也不能在table里面存放链表?
实在没有头绪,请各位指教.

为1

【在 u*****n 的大作中提到】
: 在他们家遇到了两个傻B阿三。一个不停的纠正我的逗号和分号,另外一个给的hints都
: 是废话。最后挂了。他们家的阿三是我面过的所有公司中最极品的。所以面试他们家要
: 小心傻B阿三。当然他们家的华人美女HR相当的nice,是我遇到的所有HR中最nice的。
: 总共面了四轮:
: 第一轮:定义buddy system为一棵complete binary tree。一个node可能为0也可能为1
: . 它的
: value为1,当且仅当它所有的child的value均为1.
: 1
: |
: 1 2

a*********2
发帖数: 187
94
请问第四题,hash table是否可以认为是理想的,不会产生conflict的? 实在不知道
clear O(1)应该如何才能做到.
z***y
发帖数: 73
95
哈哈哈哈哈哈。
本来觉得他们公司挺好的,结果上glassdoor一看,各种搞笑。
说他们家面试题目有的比较晦涩,给了提示后就更加晦涩啦;有得吐槽,自己压根不懂
C++,简历也跟C++没半毛钱关系,结果电面第一个问题就是C++。
据说他们家的经典题目:
1.C++对象内存布局;
2.Buddy bitmap,应该就是lz说的这个;
3.Draw circle,应该也是lz说的;
4.设计一个key value系统,也是lz说的题目。
Buddy那题感觉是做内存管理的,假设内存池可以支持256K 128K 64K 32K四种大小,那
么就可以理解成一个这种树,可以分配256K必须他下面的2个128k可用,递归下去所有
子节点都要为可用。很好理解。
a*********2
发帖数: 187
96
unichen的面经里面有四轮的题,请问一下,pure storage的onsite,有第5道题吗?
h****j
发帖数: 15
97
感谢楼主,对于第二题,有些疑问,楼主的描述不太像一个通常的task dispatch
system,一般addtask里不直接运行task的。
请问一下addTask()和trigger()是运行在两个线程里的么?
两个线程共享一个task queue,这个queue需要用锁来保护。
trigger线程里面有一个for loop,不断的从queue里面拿出task执行。如果队列空,停
等。
addtask线程里面不断的将新的task写入queue里面
这个理解对么?多谢!
x*****0
发帖数: 452
98
你好,
请问,如果queue是atomic的,多线程环境下会产生怎样的并发问题呢?
实在想不明白,求解释。谢谢了

【在 u*****n 的大作中提到】
: 这题的重点是queue是atomic的,那么你应该怎么去lock呢?
: 如果你这样的题不熟悉,建议你复习下EPI上的相关章节。应该不难。

x*****0
发帖数: 452
99
请问,也就是说你需要lock,unlock操作来确保queue是atomic的吗?
不是说直接把queue定义成atomic的就成了,比如java中的BlockQueue?

【在 u*****n 的大作中提到】
: 这题的重点是queue是atomic的,那么你应该怎么去lock呢?
: 如果你这样的题不熟悉,建议你复习下EPI上的相关章节。应该不难。

w********o
发帖数: 440
100
昨天一个挺老实的华人被老印老板干掉!敢来几个月。这个公司看来也不靠谱

为1

【在 u*****n 的大作中提到】
: 在他们家遇到了两个傻B阿三。一个不停的纠正我的逗号和分号,另外一个给的hints都
: 是废话。最后挂了。他们家的阿三是我面过的所有公司中最极品的。所以面试他们家要
: 小心傻B阿三。当然他们家的华人美女HR相当的nice,是我遇到的所有HR中最nice的。
: 总共面了四轮:
: 第一轮:定义buddy system为一棵complete binary tree。一个node可能为0也可能为1
: . 它的
: value为1,当且仅当它所有的child的value均为1.
: 1
: |
: 1 2

相关主题
请教一道面试题一道经典涉及多线程,互斥访问的面试题
请问pure storage 的那道map 数据结构题跪求pure storage的面经!谢谢!
请教一道数据结构的设计题问一道facebook的面试题
进入JobHunting版参与讨论
x*****0
发帖数: 452
101
你好,
请问,如果queue是atomic的,多线程环境下会产生怎样的并发问题呢?
实在想不明白,求解释。谢谢了

【在 u*****n 的大作中提到】
: 这题的重点是queue是atomic的,那么你应该怎么去lock呢?
: 如果你这样的题不熟悉,建议你复习下EPI上的相关章节。应该不难。

x*****0
发帖数: 452
102
请问,也就是说你需要lock,unlock操作来确保queue是atomic的吗?
不是说直接把queue定义成atomic的就成了,比如java中的BlockQueue?

【在 u*****n 的大作中提到】
: 这题的重点是queue是atomic的,那么你应该怎么去lock呢?
: 如果你这样的题不熟悉,建议你复习下EPI上的相关章节。应该不难。

w********o
发帖数: 440
103
昨天一个挺老实的华人被老印老板干掉!敢来几个月。这个公司看来也不靠谱

为1

【在 u*****n 的大作中提到】
: 在他们家遇到了两个傻B阿三。一个不停的纠正我的逗号和分号,另外一个给的hints都
: 是废话。最后挂了。他们家的阿三是我面过的所有公司中最极品的。所以面试他们家要
: 小心傻B阿三。当然他们家的华人美女HR相当的nice,是我遇到的所有HR中最nice的。
: 总共面了四轮:
: 第一轮:定义buddy system为一棵complete binary tree。一个node可能为0也可能为1
: . 它的
: value为1,当且仅当它所有的child的value均为1.
: 1
: |
: 1 2

w*****1
发帖数: 7
104
大神你好,小弟也马上要onsite,buddy system有点问题麻烦大神解答下,我感觉你贴
出的python代码应该不对的吧,之前在别的文章中看到offset 和 len是只针对最后一
层,然后用bit[level][number]感觉更make sense,不知道是不是面试官要求用一维数
组表示的呢?跪谢大神解答!

为1

【在 u*****n 的大作中提到】
: 在他们家遇到了两个傻B阿三。一个不停的纠正我的逗号和分号,另外一个给的hints都
: 是废话。最后挂了。他们家的阿三是我面过的所有公司中最极品的。所以面试他们家要
: 小心傻B阿三。当然他们家的华人美女HR相当的nice,是我遇到的所有HR中最nice的。
: 总共面了四轮:
: 第一轮:定义buddy system为一棵complete binary tree。一个node可能为0也可能为1
: . 它的
: value为1,当且仅当它所有的child的value均为1.
: 1
: |
: 1 2

w*****1
发帖数: 7
105
大神你好,小弟也马上要onsite,buddy system有点问题麻烦大神解答下,我感觉你贴
出的python代码应该不对的吧,之前在别的文章中看到offset 和 len是只针对最后一
层,然后用bit[level][number]感觉更make sense,不知道是不是面试官要求用一维数
组表示的呢?跪谢大神解答!

为1

【在 u*****n 的大作中提到】
: 在他们家遇到了两个傻B阿三。一个不停的纠正我的逗号和分号,另外一个给的hints都
: 是废话。最后挂了。他们家的阿三是我面过的所有公司中最极品的。所以面试他们家要
: 小心傻B阿三。当然他们家的华人美女HR相当的nice,是我遇到的所有HR中最nice的。
: 总共面了四轮:
: 第一轮:定义buddy system为一棵complete binary tree。一个node可能为0也可能为1
: . 它的
: value为1,当且仅当它所有的child的value均为1.
: 1
: |
: 1 2

b*******1
发帖数: 55
106
"
就是一个二维数组,但是每层长度不一样,A[0]长度为1,A[1]为2,A[2]为4,依次类
推。每个元素可以为0或者为1,clearBit或者setBit都是说的最后一层从offset开始到
offset+len-1置为1或0
"

【在 w*****1 的大作中提到】
: 大神你好,小弟也马上要onsite,buddy system有点问题麻烦大神解答下,我感觉你贴
: 出的python代码应该不对的吧,之前在别的文章中看到offset 和 len是只针对最后一
: 层,然后用bit[level][number]感觉更make sense,不知道是不是面试官要求用一维数
: 组表示的呢?跪谢大神解答!
:
: 为1

1 (共1页)
进入JobHunting版参与讨论
相关主题
fb国内申请的曲折经历+电面跪求pure storage的面经!谢谢!
刷了半天题问一道facebook的面试题
L家coding question一问求指点一道G家Iterator的题目
M家onsite题一道问个最近面试里的题目
请教一道面试题请教个面经里的设计题
请问pure storage 的那道map 数据结构题L家的高频题merge k sorted arrays giving iterators求讨论!
请教一道数据结构的设计题职业杯另外一道
一道经典涉及多线程,互斥访问的面试题what is the internal implementation of Deque
相关话题的讨论汇总
话题: task话题: addtask话题: trigger话题: len话题: queue