由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - g电面 详细面经
相关主题
M家, B家, Epic, Yelp, Hulu, Amazon面经G电面面经加求bless
赞人品,也发Twitter 电面面经,又挂了!!(add Amazon 1st phone interview 面经)爆一个恶心的FB小留面试官。电面都答出来了还fail我
报个电面面经,估计没戏了Amazon 电面
G intern电面面经一道面试题
FLAGBR 面经+offer一道矩阵路径题
uber 电面面经求牛人指点a家面试题
FLG面经,攒人品,回馈本版。G onsite 面经
顶风发个amazon电面面经发篇面经
相关话题的讨论汇总
话题: return话题: true话题: dfs话题: visited话题: 棋子
进入JobHunting版参与讨论
1 (共1页)
g********r
发帖数: 58
1
去年面的, 就一道题,上来直接问,直到结束,共45分钟。一周后得到的结果,fail
了。
题目说 围棋, 输入出任意 一个 棋盘位置, 判断是否那个位置的棋子处于被包围状
态-上下左右都是不同颜色地棋子。被包围的有可能是相同颜色地一组棋子,只要给定
位置属于那个组 也返回true.
比如 (.代表没有棋子,B代表黑,W代表白)
..B..
.BWB.
.BWB.
..B..
上来先说思路:先找出 与给定位置的棋子 相同的颜色的组。然后再判断棋子是否被黑
的包围,说着说着 意识到 只要在找组的过程中 判断是否每个相同颜色地棋子是否有
上下左右的邻居为空即可。对方表示同意 (大概说了不到5分钟)
然后就coding, 用的是BFS + stack, 边写边解释,一切也顺利。 也主动考虑了边界
条件。 不用写code地过程中忘了做duplication check,就是标出visited的位置。经过
间接提醒,让跑了个test case,发现这个问题,改了过来。 然后就是没有考虑到如果
给定位置为空的情况。对方提醒了第几行code有问题 我就意识到了。
整个过程 大家都很愉快 交流没有任何问题。对方也表现地很positive,说HR会联系你.
然后就收到拒信。 很想问问大牛 过g的phone interview 都是什么情况?都是没有任
何错误吗?我是很客观地再现了我当时的情况,fail了之后 很意外,(没有太难过,
都习惯了:))只是没有找到失败地原因。希望大家给点意见,以便我以后提高。也给
大家做个反面地例子:)
w****a
发帖数: 710
2
我感觉还可以啊。给的反馈都positive,都不让过店面。
我现在开始担心我的店面了。。还没有消息
M********5
发帖数: 715
3
我也遇见过好些面的时候很positive的面试,最后莫名其妙地给fail掉了。。。都不知
道fail人的point在哪里。。。
j*****y
发帖数: 1071
4
bless
.BB..
B.WB.
B.WB.
.BWB.
..B..
这种情况算被围住了吗?

fail

【在 g********r 的大作中提到】
: 去年面的, 就一道题,上来直接问,直到结束,共45分钟。一周后得到的结果,fail
: 了。
: 题目说 围棋, 输入出任意 一个 棋盘位置, 判断是否那个位置的棋子处于被包围状
: 态-上下左右都是不同颜色地棋子。被包围的有可能是相同颜色地一组棋子,只要给定
: 位置属于那个组 也返回true.
: 比如 (.代表没有棋子,B代表黑,W代表白)
: ..B..
: .BWB.
: .BWB.
: ..B..

r*******h
发帖数: 315
5
我猜你被指出第几行有问题,这个可能是negative。因为我的经历也是很多情况没考虑
到,但幸运的是,当面试官好几次提出异议(其中一次也是用一个test case)时,每
次我都意识到可能的错误,就立即改过来了,最后也pass了。
M********5
发帖数: 715
6
可是觉得改过来了的话pass不pass那不完全就是面试官说了算了。。。哎

【在 r*******h 的大作中提到】
: 我猜你被指出第几行有问题,这个可能是negative。因为我的经历也是很多情况没考虑
: 到,但幸运的是,当面试官好几次提出异议(其中一次也是用一个test case)时,每
: 次我都意识到可能的错误,就立即改过来了,最后也pass了。

g********r
发帖数: 58
7
恩 good point, 这种情况我没有考虑到。我觉得虽然interviewer没有提出来 这很有
可能是个原因。

【在 j*****y 的大作中提到】
: bless
: .BB..
: B.WB.
: B.WB.
: .BWB.
: ..B..
: 这种情况算被围住了吗?
:
: fail

j*****y
发帖数: 1071
8
如果这个也算被围住的话,感觉很难阿

恩 good point, 这种情况我没有考虑到。我觉得虽然interviewer没有提出来 这很有
可能是个原因。

【在 g********r 的大作中提到】
: 恩 good point, 这种情况我没有考虑到。我觉得虽然interviewer没有提出来 这很有
: 可能是个原因。

e***s
发帖数: 799
9
我感觉是不是面试官只是收集你的答案,code还是会给几个人review的?
f*****e
发帖数: 2992
10
用DFS可能会好些。

【在 g********r 的大作中提到】
: 恩 good point, 这种情况我没有考虑到。我觉得虽然interviewer没有提出来 这很有
: 可能是个原因。

相关主题
uber 电面面经G电面面经加求bless
FLG面经,攒人品,回馈本版。爆一个恶心的FB小留面试官。电面都答出来了还fail我
顶风发个amazon电面面经Amazon 电面
进入JobHunting版参与讨论
g********r
发帖数: 58
11
应该不会吧。我还没有听说这种phone interview的。即使是这样,code也没什么问题
,毕竟是和面试官一起过了一遍的。

【在 e***s 的大作中提到】
: 我感觉是不是面试官只是收集你的答案,code还是会给几个人review的?
w****a
发帖数: 710
12
我也觉得有这种可能。

【在 e***s 的大作中提到】
: 我感觉是不是面试官只是收集你的答案,code还是会给几个人review的?
g********r
发帖数: 58
13
是,这样的话 可能就不适合面试了。 估计interviewer也没这意思。
不过要是指出这种情况 是个plus.

【在 j*****y 的大作中提到】
: 如果这个也算被围住的话,感觉很难阿
:
: 恩 good point, 这种情况我没有考虑到。我觉得虽然interviewer没有提出来 这很有
: 可能是个原因。

g********r
发帖数: 58
14
有这种可能,不过能考虑到所有case 然后 一次bug free的 真的很难。

【在 r*******h 的大作中提到】
: 我猜你被指出第几行有问题,这个可能是negative。因为我的经历也是很多情况没考虑
: 到,但幸运的是,当面试官好几次提出异议(其中一次也是用一个test case)时,每
: 次我都意识到可能的错误,就立即改过来了,最后也pass了。

y****n
发帖数: 743
15
首先要定义,什么叫“围”。
如果“回”字,中间有空,算不算被围?
感觉这道题考得是画图的填充算法。

fail

【在 g********r 的大作中提到】
: 去年面的, 就一道题,上来直接问,直到结束,共45分钟。一周后得到的结果,fail
: 了。
: 题目说 围棋, 输入出任意 一个 棋盘位置, 判断是否那个位置的棋子处于被包围状
: 态-上下左右都是不同颜色地棋子。被包围的有可能是相同颜色地一组棋子,只要给定
: 位置属于那个组 也返回true.
: 比如 (.代表没有棋子,B代表黑,W代表白)
: ..B..
: .BWB.
: .BWB.
: ..B..

g******z
发帖数: 893
16
如果这种情况的话,能不能BFS+queue
把周围的同色棋子和空格用queue保存下来
如果queue空之前到达棋盘边界就没有被围,不然就是被围了?

【在 g********r 的大作中提到】
: 是,这样的话 可能就不适合面试了。 估计interviewer也没这意思。
: 不过要是指出这种情况 是个plus.

g********r
发帖数: 58
17
我觉得你是对了,我又看了一遍原题, 应该是不需要考虑有空的情况。
问一下, 画图的填充算法 有没有什么更好的solution?

【在 y****n 的大作中提到】
: 首先要定义,什么叫“围”。
: 如果“回”字,中间有空,算不算被围?
: 感觉这道题考得是画图的填充算法。
:
: fail

i*****e
发帖数: 63
p*****2
发帖数: 21240
19
这题为什么难呀?
感觉bfs/dfs找到边界就返回false就可以了吧?难点在哪里?
h*u
发帖数: 122
20
mark~
相关主题
一道面试题G onsite 面经
一道矩阵路径题发篇面经
求牛人指点a家面试题面经分享
进入JobHunting版参与讨论
p*****2
发帖数: 21240
21
val m=5
val n=5
val board=Array(".BB..","B.WB.","B.WB.",".BWB.","..B..")
val visited=Array.ofDim[Boolean](m,n)

println(dfs(1,2))

def dfs(i:Int, j:Int):Boolean={
if(i<0 || i>=n || j<0 || j>=n) return true
if(board(i)(j)=='B' || visited(i)(j)) return false
visited(i)(j)=true
if(dfs(i-1,j)) return true
if(dfs(i+1,j)) return true
if(dfs(i,j-1)) return true
if(dfs(i,j+1)) return true

false
}
e******o
发帖数: 757
22
厉害,我用BFS写了一大托

【在 p*****2 的大作中提到】
: val m=5
: val n=5
: val board=Array(".BB..","B.WB.","B.WB.",".BWB.","..B..")
: val visited=Array.ofDim[Boolean](m,n)
:
: println(dfs(1,2))
:
: def dfs(i:Int, j:Int):Boolean={
: if(i<0 || i>=n || j<0 || j>=n) return true
: if(board(i)(j)=='B' || visited(i)(j)) return false

g********r
发帖数: 58
23
思路和2爷的差不多。只不过没用递归。
可能题目太简单了,所以 coding 要求比较高。

【在 p*****2 的大作中提到】
: val m=5
: val n=5
: val board=Array(".BB..","B.WB.","B.WB.",".BWB.","..B..")
: val visited=Array.ofDim[Boolean](m,n)
:
: println(dfs(1,2))
:
: def dfs(i:Int, j:Int):Boolean={
: if(i<0 || i>=n || j<0 || j>=n) return true
: if(board(i)(j)=='B' || visited(i)(j)) return false

d**********x
发帖数: 4083
24
首先。。BFS and what?
其次。。因为这题很简单。。没做visited标记说不过去吧。。

fail

【在 g********r 的大作中提到】
: 去年面的, 就一道题,上来直接问,直到结束,共45分钟。一周后得到的结果,fail
: 了。
: 题目说 围棋, 输入出任意 一个 棋盘位置, 判断是否那个位置的棋子处于被包围状
: 态-上下左右都是不同颜色地棋子。被包围的有可能是相同颜色地一组棋子,只要给定
: 位置属于那个组 也返回true.
: 比如 (.代表没有棋子,B代表黑,W代表白)
: ..B..
: .BWB.
: .BWB.
: ..B..

r********9
发帖数: 1116
25
BFS+stack? 不是应该BFS+queue吗?
这道题不难,但如果置换成计算一块棋是否被包围,被包围了判断是死是活的话,好像
很难了。
关键是怎么区分内空和外空?

fail

【在 g********r 的大作中提到】
: 去年面的, 就一道题,上来直接问,直到结束,共45分钟。一周后得到的结果,fail
: 了。
: 题目说 围棋, 输入出任意 一个 棋盘位置, 判断是否那个位置的棋子处于被包围状
: 态-上下左右都是不同颜色地棋子。被包围的有可能是相同颜色地一组棋子,只要给定
: 位置属于那个组 也返回true.
: 比如 (.代表没有棋子,B代表黑,W代表白)
: ..B..
: .BWB.
: .BWB.
: ..B..

a******e
发帖数: 710
26
看不太懂,能注释一下么?

【在 p*****2 的大作中提到】
: val m=5
: val n=5
: val board=Array(".BB..","B.WB.","B.WB.",".BWB.","..B..")
: val visited=Array.ofDim[Boolean](m,n)
:
: println(dfs(1,2))
:
: def dfs(i:Int, j:Int):Boolean={
: if(i<0 || i>=n || j<0 || j>=n) return true
: if(board(i)(j)=='B' || visited(i)(j)) return false

h*****u
发帖数: 120
27
你强但是有人比你更强,就这样

fail

【在 g********r 的大作中提到】
: 去年面的, 就一道题,上来直接问,直到结束,共45分钟。一周后得到的结果,fail
: 了。
: 题目说 围棋, 输入出任意 一个 棋盘位置, 判断是否那个位置的棋子处于被包围状
: 态-上下左右都是不同颜色地棋子。被包围的有可能是相同颜色地一组棋子,只要给定
: 位置属于那个组 也返回true.
: 比如 (.代表没有棋子,B代表黑,W代表白)
: ..B..
: .BWB.
: .BWB.
: ..B..

j***a
发帖数: 832
28
is this interview for recent graduates?
I doubt if they will give those interview question for a 40 year old
architecturer

fail

【在 g********r 的大作中提到】
: 去年面的, 就一道题,上来直接问,直到结束,共45分钟。一周后得到的结果,fail
: 了。
: 题目说 围棋, 输入出任意 一个 棋盘位置, 判断是否那个位置的棋子处于被包围状
: 态-上下左右都是不同颜色地棋子。被包围的有可能是相同颜色地一组棋子,只要给定
: 位置属于那个组 也返回true.
: 比如 (.代表没有棋子,B代表黑,W代表白)
: ..B..
: .BWB.
: .BWB.
: ..B..

C***Y
发帖数: 1323
29

fail
真的是问围棋里包围定义吗?那会下围棋的不是沾光了?除了回字的case楼主没有考虑
到以外,如果是在角上,最少两个白子就可包围一黑子。在边上最少三个白子就可包围
一黑子,因为利用了border。

【在 g********r 的大作中提到】
: 去年面的, 就一道题,上来直接问,直到结束,共45分钟。一周后得到的结果,fail
: 了。
: 题目说 围棋, 输入出任意 一个 棋盘位置, 判断是否那个位置的棋子处于被包围状
: 态-上下左右都是不同颜色地棋子。被包围的有可能是相同颜色地一组棋子,只要给定
: 位置属于那个组 也返回true.
: 比如 (.代表没有棋子,B代表黑,W代表白)
: ..B..
: .BWB.
: .BWB.
: ..B..

p*g
发帖数: 141
30
这个思路是对的, 但是逻辑不对吧
应该是: 只要有一个地方是空的, 这一块棋就是活的
if ( out of boundary || B || visited ) return false
if ( empty ) return true
for ( 4 neighbours )
if ( dfs(neighbour) ) return true
return false

【在 p*****2 的大作中提到】
: val m=5
: val n=5
: val board=Array(".BB..","B.WB.","B.WB.",".BWB.","..B..")
: val visited=Array.ofDim[Boolean](m,n)
:
: println(dfs(1,2))
:
: def dfs(i:Int, j:Int):Boolean={
: if(i<0 || i>=n || j<0 || j>=n) return true
: if(board(i)(j)=='B' || visited(i)(j)) return false

相关主题
发个Goldman Sachs的面经赞人品,也发Twitter 电面面经,又挂了!!(add Amazon 1st phone interview 面经)
MS面经。报个电面面经,估计没戏了
M家, B家, Epic, Yelp, Hulu, Amazon面经G intern电面面经
进入JobHunting版参与讨论
m*******8
发帖数: 183
31
使用深度优先遍历算法。
d******e
发帖数: 117
32
写得不对吧。假设一个白子被4个黑子包围,这个算法不能return true
if(board(i)(j)=='.' || visited(i)(j)) return false

【在 p*****2 的大作中提到】
: val m=5
: val n=5
: val board=Array(".BB..","B.WB.","B.WB.",".BWB.","..B..")
: val visited=Array.ofDim[Boolean](m,n)
:
: println(dfs(1,2))
:
: def dfs(i:Int, j:Int):Boolean={
: if(i<0 || i>=n || j<0 || j>=n) return true
: if(board(i)(j)=='B' || visited(i)(j)) return false

p*****2
发帖数: 21240
33

我算的是活。

【在 d******e 的大作中提到】
: 写得不对吧。假设一个白子被4个黑子包围,这个算法不能return true
: if(board(i)(j)=='.' || visited(i)(j)) return false

g*********n
发帖数: 43
34
出了边界return true? 如果一个白字在边界被三个黑子围住, 应该算dead吧
: if(i<0 || i>=n || j<0 || j>=n) return true

【在 p*****2 的大作中提到】
:
: 我算的是活。

p*****2
发帖数: 21240
35

判断是否那个位置的棋子处于被包围状
态-上下左右都是不同颜色地棋子。

【在 g*********n 的大作中提到】
: 出了边界return true? 如果一个白字在边界被三个黑子围住, 应该算dead吧
: : if(i<0 || i>=n || j<0 || j>=n) return true

l*****a
发帖数: 14598
36
这题镇无聊
北美围棋大赛即将开幕,是骡子是马出来六六
http://www.mitbbs.com/article_t/Go/31229309.html

fail

【在 g********r 的大作中提到】
: 去年面的, 就一道题,上来直接问,直到结束,共45分钟。一周后得到的结果,fail
: 了。
: 题目说 围棋, 输入出任意 一个 棋盘位置, 判断是否那个位置的棋子处于被包围状
: 态-上下左右都是不同颜色地棋子。被包围的有可能是相同颜色地一组棋子,只要给定
: 位置属于那个组 也返回true.
: 比如 (.代表没有棋子,B代表黑,W代表白)
: ..B..
: .BWB.
: .BWB.
: ..B..

a******e
发帖数: 710
37
gladsomeman 说的这种情况用二爷的方法会返回true吧?

【在 p*****2 的大作中提到】
:
: 判断是否那个位置的棋子处于被包围状
: 态-上下左右都是不同颜色地棋子。

1 (共1页)
进入JobHunting版参与讨论
相关主题
发篇面经FLAGBR 面经+offer
面经分享uber 电面面经
发个Goldman Sachs的面经FLG面经,攒人品,回馈本版。
MS面经。顶风发个amazon电面面经
M家, B家, Epic, Yelp, Hulu, Amazon面经G电面面经加求bless
赞人品,也发Twitter 电面面经,又挂了!!(add Amazon 1st phone interview 面经)爆一个恶心的FB小留面试官。电面都答出来了还fail我
报个电面面经,估计没戏了Amazon 电面
G intern电面面经一道面试题
相关话题的讨论汇总
话题: return话题: true话题: dfs话题: visited话题: 棋子