《数据科学面试40+真题讲解》,K神本年度最后一次开课


一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推你去多家公司面试
Airbnb 数据科学职位
in analytics and inference
天天打游戏、照样领工资,
你要不要来?
把贵司招聘信息放这里
查看: 2319|回复: 4
收起左侧

Twitter TellApart电面面经

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

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

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

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

x
先聊聊他干什么我干什么,开始coding。
Letter combinations of phone number
. 鍥磋鎴戜滑@1point 3 acres
做完说出一道设计题吧不用coding。
. from: 1point3acres.com/bbs 设计一个电话号码dispatch system,三个api
void takeNumber(Number) //从pool 里take一个number
boolean isTaken(Number) //check 这个number有没有被用
Number getANumber() //从pool里随便取一个number

我说用一个set应该就可以了。
问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应该可以,貌似挺满意的样子。

. 鍥磋鎴戜滑@1point 3 acres问了问题,愉快结束。

评分

2

查看全部评分

xiaojunji 发表于 2016-3-22 15:30:16 | 显示全部楼层
谢谢分享,不过
1. 电话号码应该是10位数
2. 用set的话空间应该是O(10N), 用Trie的应该是 10 ^10
楼主怎么take一个number?随机吗 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
. from: 1point3acres.com/bbs
回复 支持 反对

使用道具 举报

 楼主| superspr 发表于 2016-3-27 14:11:35 | 显示全部楼层
xiaojunji 发表于 2016-3-22 15:30
谢谢分享,不过
1. 电话号码应该是10位数.鏈枃鍘熷垱鑷1point3acres璁哄潧
2. 用set的话空间应该是O(10N), 用Trie的应该是 10 ^10

哦对是10位,不过意思一样。.鐣欏璁哄潧-涓浜-涓夊垎鍦

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. visit 1point3acres.com for more.
请问lz getANumber()是从已经被分配的号码里选一个 还是从没有被分配的里面选一个?
.鐣欏璁哄潧-涓浜-涓夊垎鍦
没分配的里选
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-11-18 03:32

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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