Redian新闻
>
除铁锈利器--rust reformer--感谢dryice同学
avatar
除铁锈利器--rust reformer--感谢dryice同学# Living
u*n
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)
所以我们需要把这两个方法整合起来。
avatar
w*u
2
不得不在此感谢verydryice同学,上次另外一个帖子里提醒用rust reformer
在杠铃片子上试了试,效果很好。Rust-Oleum 8oz装。干了之后非常光滑,三天以后可
以喷漆。
准备下一步把trailer整整。。。。。
avatar
o*e
3
谢谢分享! 祝找到好工作!
希望别的 purestorage的同学
能分享一下经验和观察。
大家去nice一点,支持老中HR吧。
以后记住烙印的名字。 人肉伺候。。。
avatar
w*u
4
最后一张图片里面
全干了就会像35lb片子一样,黑色
大饼涂多了,干得慢。25lb饼发现还有没盖住的,追加了一点。
avatar
j*a
5
赞lz。
第三题还是不明白什么意思?能具体说说嘛?谢了
avatar
d*0
6
靠。 bench press 啊 。。
avatar
j*3
7
这家让用java么
avatar
w*u
8
压T-molding用的。。。。

【在 d**********0 的大作中提到】
: 靠。 bench press 啊 。。
avatar
t*h
9
不错,准备搞

为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

avatar
d*0
10
2nd 靠。

【在 w******u 的大作中提到】
: 压T-molding用的。。。。
avatar
u*n
11
已经添加了些细节。如果还不懂请发我message。

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

avatar
u*q
12
BSO亮点是最后一句。奔下翠勒吧。

【在 w******u 的大作中提到】
: 不得不在此感谢verydryice同学,上次另外一个帖子里提醒用rust reformer
: 在杠铃片子上试了试,效果很好。Rust-Oleum 8oz装。干了之后非常光滑,三天以后可
: 以喷漆。
: 准备下一步把trailer整整。。。。。

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

【在 u*****n 的大作中提到】
: 已经添加了些细节。如果还不懂请发我message。
avatar
w*u
14
嘿嘿,破船上堆满了地毯和underlayment,还有俩星期才能仍完。
会倒胃的。。。。

【在 u****q 的大作中提到】
: BSO亮点是最后一句。奔下翠勒吧。
avatar
u*n
15
屏幕上的像素必然是整点啊。需要用整点来模拟圆的形状。

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

avatar
w*u
16
um哥指教。
这个折叠头是小弟得意之作,hack saw生锯的。锯了一半不忿购入hft10元神器angle
grinder,结果被飞溅的火花亮瞎了狗眼。老老实实做完了hand job。。。。。。。。

【在 u****q 的大作中提到】
: BSO亮点是最后一句。奔下翠勒吧。
avatar
t*h
17
我以为是数学题。搞屏幕上,整数就make sense了。搞出来八分之一挨着对折就好了。
多谢

【在 u*****n 的大作中提到】
: 屏幕上的像素必然是整点啊。需要用整点来模拟圆的形状。
avatar
u*q
18
太牛了。会搞金属都是广大牛。

【在 w******u 的大作中提到】
: um哥指教。
: 这个折叠头是小弟得意之作,hack saw生锯的。锯了一半不忿购入hft10元神器angle
: grinder,结果被飞溅的火花亮瞎了狗眼。老老实实做完了hand job。。。。。。。。

avatar
y*n
19
华人美女HR给楼主留email吗,抓住机会,不要给阿三领先一步。
avatar
w*u
20
oh yeah,hack saw+电钻=大牛
。。。。。。

【在 u****q 的大作中提到】
: 太牛了。会搞金属都是广大牛。
avatar
u*n
21
当然,面试中没有遇到限制语言的公司。

【在 j**********3 的大作中提到】
: 这家让用java么
avatar
d*0
22
没搞过。 啥是折叠头?

【在 w******u 的大作中提到】
: um哥指教。
: 这个折叠头是小弟得意之作,hack saw生锯的。锯了一半不忿购入hft10元神器angle
: grinder,结果被飞溅的火花亮瞎了狗眼。老老实实做完了hand job。。。。。。。。

avatar
w*o
23
不明白这公司有啥去头

为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

avatar
w*u
24
其实是舌头
google -- fold away trailer tongue

【在 d**********0 的大作中提到】
: 没搞过。 啥是折叠头?
avatar
m*k
25
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

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

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

avatar
J*g
27

为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

avatar
j*3
28
为什么是1/8不是1/4?
avatar
u*n
29
因为两侧点的密度不一样。

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

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

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

avatar
j*3
32
额。。。好聪明。。我开始怀疑我智商了。。。

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

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

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

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

【在 u*****n 的大作中提到】
: Ch18 Parallel computing
avatar
e*t
38
第一题,画的图没怎么看懂,不知道一个原来为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 xA[(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
最后一段
avatar
h*e
39
这第四轮 最后一题 四个O(1)的解法是什么。
avatar
h*e
40
hashmap 加 double linkedlist怎样。
avatar
u*n
41
在他们家遇到了两个傻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)
所以我们需要把这两个方法整合起来。
avatar
o*e
42
谢谢分享! 祝找到好工作!
希望别的 purestorage的同学
能分享一下经验和观察。
大家去nice一点,支持老中HR吧。
以后记住烙印的名字。 人肉伺候。。。
avatar
j*a
43
赞lz。
第三题还是不明白什么意思?能具体说说嘛?谢了
avatar
j*3
44
这家让用java么
avatar
t*h
45
不错,准备搞

为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

avatar
u*n
46
已经添加了些细节。如果还不懂请发我message。

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

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

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

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

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

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

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

为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

avatar
m*k
53
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

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

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

avatar
J*g
55

为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

avatar
j*3
56
为什么是1/8不是1/4?
avatar
u*n
57
因为两侧点的密度不一样。

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

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

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

avatar
j*3
60
额。。。好聪明。。我开始怀疑我智商了。。。

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

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

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

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

【在 u*****n 的大作中提到】
: Ch18 Parallel computing
avatar
h*e
66
这第四轮 最后一题 四个O(1)的解法是什么。
avatar
h*e
67
hashmap 加 double linkedlist怎样。
avatar
u*n
68
不是很明白这里第一题和第二题。
第一轮: 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);
}
avatar
p*o
69
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;

avatar
I*d
70
还是没看懂第一道题。。。一个node可能为0也可能为1
. 它的
value为1,当且仅当它所有的child的value均为1.
就是说不是所有的child的value都为1的话这个node的value可能为0??但题目下面的
这个图怎么不make sense.
还有
1' clearBit(int offset, int len);里面的len是啥意思?
avatar
j*l
71
有一个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是啥意思?

avatar
u*n
72
这个解法不是最优解。

【在 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;

avatar
u*n
73
正解

【在 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]里。

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

【在 u*****n 的大作中提到】
: 这个解法不是最优解。
avatar
u*n
75
1‘ 考虑啥时候加锁。
4‘ size可以告诉你哪些元素是有效的。
avatar
y*i
76
今天去了个2轮的onsite,问了2和4. 感谢楼主!这公司前途怎么样我不懂,位置太好
了,在castro上。适合爱吃拉面的人。。另外他们家邻居竟然是Quora。。。
avatar
u*n
77
谢谢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]里。

avatar
d*h
78
你的onsite是分两次的吗?求分享下你的完整的解题思路,谢谢。尤其是第二题

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

avatar
d*h
79
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

avatar
d*h
80
请问你是已经onsite完了吗?能分享下你的面经和解法吗?谢谢

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

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

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

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

avatar
s*x
83
第四题的解法不错,但是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;

avatar
a*2
84
请问一下第四轮的那题,
要想做到在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

avatar
a*2
85
请问第四题,hash table是否可以认为是理想的,不会产生conflict的? 实在不知道
clear O(1)应该如何才能做到.
avatar
z*y
86
哈哈哈哈哈哈。
本来觉得他们公司挺好的,结果上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可用,递归下去所有
子节点都要为可用。很好理解。
avatar
a*2
87
unichen的面经里面有四轮的题,请问一下,pure storage的onsite,有第5道题吗?
avatar
h*j
88
感谢楼主,对于第二题,有些疑问,楼主的描述不太像一个通常的task dispatch
system,一般addtask里不直接运行task的。
请问一下addTask()和trigger()是运行在两个线程里的么?
两个线程共享一个task queue,这个queue需要用锁来保护。
trigger线程里面有一个for loop,不断的从queue里面拿出task执行。如果队列空,停
等。
addtask线程里面不断的将新的task写入queue里面
这个理解对么?多谢!
avatar
u*n
89
不是很明白这里第一题和第二题。
第一轮: 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);
}
avatar
p*o
90
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;

avatar
I*d
91
还是没看懂第一道题。。。一个node可能为0也可能为1
. 它的
value为1,当且仅当它所有的child的value均为1.
就是说不是所有的child的value都为1的话这个node的value可能为0??但题目下面的
这个图怎么不make sense.
还有
1' clearBit(int offset, int len);里面的len是啥意思?
avatar
j*l
92
有一个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是啥意思?

avatar
u*n
93
这个解法不是最优解。

【在 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;

avatar
u*n
94
正解

【在 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]里。

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

【在 u*****n 的大作中提到】
: 这个解法不是最优解。
avatar
u*n
96
1‘ 考虑啥时候加锁。
4‘ size可以告诉你哪些元素是有效的。
avatar
y*i
97
今天去了个2轮的onsite,问了2和4. 感谢楼主!这公司前途怎么样我不懂,位置太好
了,在castro上。适合爱吃拉面的人。。另外他们家邻居竟然是Quora。。。
avatar
u*n
98
谢谢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]里。

avatar
d*h
99
你的onsite是分两次的吗?求分享下你的完整的解题思路,谢谢。尤其是第二题

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

avatar
d*h
100
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

avatar
d*h
101
请问你是已经onsite完了吗?能分享下你的面经和解法吗?谢谢

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

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

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

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

avatar
s*x
104
第四题的解法不错,但是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;

avatar
a*2
105
请问一下第四轮的那题,
要想做到在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

avatar
a*2
106
请问第四题,hash table是否可以认为是理想的,不会产生conflict的? 实在不知道
clear O(1)应该如何才能做到.
avatar
z*y
107
哈哈哈哈哈哈。
本来觉得他们公司挺好的,结果上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可用,递归下去所有
子节点都要为可用。很好理解。
avatar
a*2
108
unichen的面经里面有四轮的题,请问一下,pure storage的onsite,有第5道题吗?
avatar
h*j
109
感谢楼主,对于第二题,有些疑问,楼主的描述不太像一个通常的task dispatch
system,一般addtask里不直接运行task的。
请问一下addTask()和trigger()是运行在两个线程里的么?
两个线程共享一个task queue,这个queue需要用锁来保护。
trigger线程里面有一个for loop,不断的从queue里面拿出task执行。如果队列空,停
等。
addtask线程里面不断的将新的task写入queue里面
这个理解对么?多谢!
avatar
x*0
110
你好,
请问,如果queue是atomic的,多线程环境下会产生怎样的并发问题呢?
实在想不明白,求解释。谢谢了

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

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

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

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

为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

avatar
x*0
113
你好,
请问,如果queue是atomic的,多线程环境下会产生怎样的并发问题呢?
实在想不明白,求解释。谢谢了

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

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

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

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

为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

avatar
w*1
116
大神你好,小弟也马上要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

avatar
w*1
117
大神你好,小弟也马上要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

avatar
b*1
118
"
就是一个二维数组,但是每层长度不一样,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

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。