May 2009 - May 2017 论坛八周年-你的足迹,我的骄傲


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

一亩三分地官方iOS手机应用下载
查看: 1751|回复: 11
收起左侧

Tableau Phone Interview Round 1

[复制链接] |试试Instant~ |关注本帖
litieZhu 发表于 2015-12-31 13:25:20 | 显示全部楼层 |阅读模式

2016(1-3月) 码农类 本科 全职@Tableau - 网上海投 - 技术电面 |Passfresh grad应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干活,快来注册

x
面试官是白人小哥 senior software engineer.

一开始他介绍了一下自己,然后问我喜欢什么方面。 第二个问题是为什么选择Tableau。
technical 问题是设计 minesweeper(扫雷):

. 鍥磋鎴戜滑@1point 3 acres并不是很难 只需要我写board class 和 click method。 player 一开始可以instantiate一个board,需要给予row,col,# of mine。click 这个method给予row 和 col,然后判断有没有踩到雷。两个情况:
1)踩到雷,游戏结束。
2)没踩到雷,两个情况:
  a)immediate adjacent (diagonals included) 有雷,需要告知有几颗雷
  b)附近没雷,把附近没雷的格子也都click

就问了一个问题 电面了一个小时,本以为让面试官hint了很多会没机会了 不过面试完几个小时后马上就收到recruiter的恭喜要进行下一轮。来回报一下地里。

几点注意:
1)如何populate gird with # mines。一开始我用rand来generate random coordinate,check是否已经有mine。面试官说worst case是forever,因为有可能会keep generating the same coordinate。就换成coordinate pool,从里面随机pop。
2)需要考虑到click过的coordinate不再被click,比如在2x2(0 mine)的grid里 如果recursively click 会导致infinity loop。
3)recursively click附近的coordinate, excluding self,因为我用的是nested for loop,要skip被点的 self coordinate(3x3,and skip self),比如在 1x1(0 mine)的grid里,不在nested loop里skip self的话也会导致infinity loop。
4)如果点的corner,check adjacent coordinates不能越界。
5)面试官告诉我写for loop尽量避开 int i = 0这样命名variable,他说 readability很重要。
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
大致就是这样啦!. visit 1point3acres.com for more.
鏉ユ簮涓浜.涓夊垎鍦拌鍧.

评分

2

查看全部评分

eamon_felix4213 发表于 2015-12-31 13:30:25 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
请问楼主 电面以前申请的具体是哪一个 position呢. 不同position电面题一般都是考算法吗 感谢
回复 支持 反对

使用道具 举报

 楼主| litieZhu 发表于 2015-12-31 13:36:34 | 显示全部楼层
关注一亩三分地微博:
Warald
面的position是software engineer(fresh grad 2016 spring),但刚才在官网上已经找不到了
回复 支持 反对

使用道具 举报

leixiang5 发表于 2015-12-31 13:56:06 | 显示全部楼层
目测楼主要onsite了。加油。
回复 支持 反对

使用道具 举报

JamesJi 发表于 2016-1-12 00:00:16 | 显示全部楼层
litieZhu 发表于 2015-12-31 00:36. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
面的position是software engineer(fresh grad 2016 spring),但刚才在官网上已经找不到了
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
楼主真幸运··我现在也没找到newGrad的title了··
回复 支持 反对

使用道具 举报

 楼主| litieZhu 发表于 2016-1-12 00:19:14 | 显示全部楼层
JamesJi 发表于 2016-1-12 00:00
楼主真幸运··我现在也没找到newGrad的title了··

是啊。。我现在再去找 已经找不到了
回复 支持 反对

使用道具 举报

ssross 发表于 2016-2-1 09:13:54 | 显示全部楼层
“如何populate gird with # mines。一开始我用rand来generate random coordinate,check是否已经有mine。面试官说worst case是forever,因为有可能会keep generating the same coordinate。就换成coordinate pool,从里面随机pop。”.鏈枃鍘熷垱鑷1point3acres璁哄潧

请问楼主什么叫换成coordinate pool然后从里面随机pop啊?能说detail一些吗?
回复 支持 反对

使用道具 举报

 楼主| litieZhu 发表于 2016-2-1 09:18:24 | 显示全部楼层
ssross 发表于 2016-2-1 09:13
“如何populate gird with # mines。一开始我用rand来generate random coordinate,check是否已经有mine。 ...

简单的来说就是有一个set, 里面有全部的坐标. 当这轮需要n个地雷的时候, 就从这个set里面随机抽取n个不重复的坐标. 这些坐标就是有地雷的点了.
回复 支持 反对

使用道具 举报

ssross 发表于 2016-2-1 09:38:31 | 显示全部楼层
litieZhu 发表于 2016-2-1 09:18
简单的来说就是有一个set, 里面有全部的坐标. 当这轮需要n个地雷的时候, 就从这个set里面随机抽取n个不重 ...
-google 1point3acres
那请问要怎么从set里random去元素出来呢?我觉得用set不行吧?只能用Arraylist去存,然后randomly get index,然后从Arraylist里面remove掉,直到取了N个。
回复 支持 反对

使用道具 举报

 楼主| litieZhu 发表于 2016-2-1 09:47:54 | 显示全部楼层
ssross 发表于 2016-2-1 09:38
那请问要怎么从set里random去元素出来呢?我觉得用set不行吧?只能用Arraylist去存,然后randomly get in ...

如何从这个set里rand出来就要看详细的implementation了. 的确, set不是最佳的. 我先前提及的set仅是因为这个container他必须没有重复的坐标. implementation的时候, 我同意你用arraylist这个data structure.
回复 支持 反对

使用道具 举报

ssross 发表于 2016-2-1 10:18:02 | 显示全部楼层
litieZhu 发表于 2016-2-1 09:47
如何从这个set里rand出来就要看详细的implementation了. 的确, set不是最佳的. 我先前提及的set仅是因为 ...

恩恩谢谢LZ哈!明天我也店面这家啦哈!
楼主后来又去onsite吗?
回复 支持 反对

使用道具 举报

 楼主| litieZhu 发表于 2016-2-1 10:18:57 | 显示全部楼层
ssross 发表于 2016-2-1 10:18
恩恩谢谢LZ哈!明天我也店面这家啦哈!
楼主后来又去onsite吗?

加油!我第二轮phone挂了。。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2017-5-24 21:50

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表