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


一亩三分地论坛

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

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

Twitter TellApart电面面经

[复制链接] |试试Instant~ |关注本帖
superspr 发表于 2015-11-7 18:03:22 | 显示全部楼层 |阅读模式

2015(10-12月) 码农类 硕士 全职@Twitter - 网上海投 - 技术电面 |Pass在职跳槽

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

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

x
先聊聊他干什么我干什么,开始coding。
Letter combinations of phone number

做完说出一道设计题吧不用coding。
设计一个电话号码dispatch system,三个api
void takeNumber(Number) //从pool 里take一个number
boolean isTaken(Number) //check 这个number有没有被用
Number getANumber() //从pool里随便取一个number

我说用一个set应该就可以了。.1point3acres缃
问multi thread怎么办。我说把三个method 都synchronized。我发现这个multi thread的问题经常被问起。
问memory consumption如何,我说O(n)
问想想能不能improve一下memory。
我想了想说可以试试用个trie,把三个api怎么实现都解释了一下。
问这样memory怎么样呢,我说worst case应该是9^9吧。感觉不是很好比,取决于number的distribution。现在想想如果每个数字存一个char的话用trie worst case是9^9, 用set的话应该是9^10,因为每个电话号码是9个char。但实际上应该也差不了多少。
面试官说确实不太好比,不过你这样implement应该可以,貌似挺满意的样子。

问了问题,愉快结束。

评分

2

查看全部评分

xiaojunji 发表于 2016-3-22 15:30:16 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
谢谢分享,不过
1. 电话号码应该是10位数
2. 用set的话空间应该是O(10N), 用Trie的应该是 10 ^10
楼主怎么take一个number?随机吗

回复 支持 反对

使用道具 举报

 楼主| superspr 发表于 2016-3-27 14:11:35 | 显示全部楼层
关注一亩三分地微博:
Warald
xiaojunji 发表于 2016-3-22 15:30
谢谢分享,不过
1. 电话号码应该是10位数
2. 用set的话空间应该是O(10N), 用Trie的应该是 10 ^10

哦对是10位,不过意思一样。. Waral 鍗氬鏈夋洿澶氭枃绔,

O(10N) == O(N)

随机取号码就可以。
回复 支持 反对

使用道具 举报

u-r-the-one 发表于 2016-4-8 07:45:02 | 显示全部楼层
请问lz getANumber()是从已经被分配的号码里选一个 还是从没有被分配的里面选一个?
回复 支持 反对

使用道具 举报

 楼主| superspr 发表于 2016-4-8 14:22:59 | 显示全部楼层
u-r-the-one 发表于 2016-4-8 07:45
请问lz getANumber()是从已经被分配的号码里选一个 还是从没有被分配的里面选一个?

. 1point 3acres 璁哄潧没分配的里选
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-5-27 19:55

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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