传说中的谷歌招聘委员会成员之一,从幕后走出来,教你学系统设计!


一亩三分地论坛

 找回密码
 获取更多干活,快来注册
Babeltime游戏工作室招工程师、美术和策划
把贵司招聘信息放这里
查看: 2261|回复: 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. 鍥磋鎴戜滑@1point 3 acres

我说用一个set应该就可以了。. visit 1point3acres.com for more.
问multi thread怎么办。我说把三个method 都synchronized。我发现这个multi thread的问题经常被问起。.鏈枃鍘熷垱鑷1point3acres璁哄潧
问memory consumption如何,我说O(n)
问想想能不能improve一下memory。. more info on 1point3acres.com
我想了想说可以试试用个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 | 显示全部楼层
谢谢分享,不过
1. 电话号码应该是10位数
2. 用set的话空间应该是O(10N), 用Trie的应该是 10 ^10
楼主怎么take一个number?随机吗

回复 支持 反对

使用道具 举报

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

. From 1point 3acres bbs哦对是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
请问lz getANumber()是从已经被分配的号码里选一个 还是从没有被分配的里面选一个?

没分配的里选
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-9-22 11:10

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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