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


一亩三分地论坛

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

F店面

[复制链接] |试试Instant~ |关注本帖
9zai 发表于 2017-9-16 05:07:42 | 显示全部楼层 |阅读模式

2017(7-9月) 码农类 硕士 全职@Facebook - 内推 - 技术电面 |Otherfresh grad应届毕业生

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

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

x
刚面完,貌似是中国小哥,人很nice,开头聊了一下项目,然后开始做题,只有一道,有点像OOD,不太清楚是不是原题。写一个构造函数和声称函数,构造函数给一个map,放字符串和概率,声称函数根据概率返回字符串。(谁知道是哪道原题也说一声)

评分

2

查看全部评分

本帖被以下淘专辑推荐:

jigsaw_Becky 发表于 2017-9-16 12:12:23 | 显示全部楼层
没有理解题目。。。。麻烦谁能解释一下吗?
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
是这个意思吗? 鏉ユ簮涓浜.涓夊垎鍦拌鍧.

“ABC”的概率是80%,“DE”的概率是20%。
问:如果概率是50%,应该返回哪个string?
. 鍥磋鎴戜滑@1point 3 acres
怎么感觉好奇怪。。。
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
谢谢!!!!

补充内容 (2017-9-16 12:21):
知道了,根据楼上们的回复,应该是这道题:
http://www.1point3acres.com/bbs/thread-189034-1-1.html
回复 支持 1 反对 0

使用道具 举报

chris612ku 发表于 2017-9-16 09:40:43 | 显示全部楼层
cutehuazai 发表于 2017-9-16 09:13. Waral 鍗氬鏈夋洿澶氭枃绔,
什么叫cumulative array

假设[1,3,4,6,2,3]是given weights
自己create一个array变成[1,4,8,14,16,19]
然后int r = rand() % array.back() + 1;
这时候r值就只会在1 - 19,
在这个区间做binary search, 看在落在那个区间,对应的idx就是我的output.1point3acres缃
For example:r = 10,就是属于第四个(idx = 3)的element. 1point3acres.com/bbs

这是我的做法,不知道是不是最优解,欢迎有人provide更优解或点评

谢谢
回复 支持 1 反对 0

使用道具 举报

chris612ku 发表于 2017-9-16 05:19:38 | 显示全部楼层
楼主,这题的意思是不是当call getString这个声称函数的时候,要按照他们的概率随机return 一个string?
回复 支持 反对

使用道具 举报

 楼主| 9zai 发表于 2017-9-16 06:17:11 | 显示全部楼层
chris612ku 发表于 2017-9-16 05:19
楼主,这题的意思是不是当call getString这个声称函数的时候,要按照他们的概率随机return 一个string?

对的对的对的对的
回复 支持 反对

使用道具 举报

daguanyuan 发表于 2017-9-16 06:32:07 | 显示全部楼层
那应该考的是根据概率随机返回字符串吧,比如abc的概率是90%,则返回的结果有90%左右应该是‘abc’,楼主是这个意思吧?
回复 支持 反对

使用道具 举报

chris612ku 发表于 2017-9-16 06:39:22 | 显示全部楼层
9zai 发表于 2017-9-16 06:17
对的对的对的对的

哦哦,了解,谢谢楼主的回复
这个应该是一个面经的变形,面经原题是Random Pick in an array with given Weights,
就是每个offset有自己的的weights,然后按照weights的概率return相对应的index.1point3acres缃
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
自己的做法是create一个cumulative array,然后random generate 一个number mod by total weights,
然后做binary search,觉得楼主这题可以做类似的做法. Waral 鍗氬鏈夋洿澶氭枃绔,

不知道楼主在店面的时候是怎么回答的?

谢谢
回复 支持 反对

使用道具 举报

summerlismile 发表于 2017-9-16 07:50:21 | 显示全部楼层
想到一个算法 和楼主讨论下

建立一个长度是100的数组 string[] array = new string[100]. 标记一个indexHeader 比如给出abc是N% 就以indexHeader开始吧后面的N个全赋值为abc 最后 int i = random.next(0,100)return array[i]。

谢谢
回复 支持 反对

使用道具 举报

cutehuazai 发表于 2017-9-16 09:12:43 来自手机 | 显示全部楼层
summerlismile 发表于 2017-9-16 07:50
想到一个算法 和楼主讨论下

建立一个长度是100的数组 string[] array = new string[100]. 标记一个inde ...

what if概率可以是小数。
回复 支持 反对

使用道具 举报

cutehuazai 发表于 2017-9-16 09:13:58 来自手机 | 显示全部楼层
chris612ku 发表于 2017-9-16 06:39
哦哦,了解,谢谢楼主的回复 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
这个应该是一个面经的变形,面经原题是Random Pick in an array with given ...

什么叫cumulative array
回复 支持 反对

使用道具 举报

cutehuazai 发表于 2017-9-16 10:14:31 | 显示全部楼层
chris612ku 发表于 2017-9-16 09:40
假设[1,3,4,6,2,3]是given weights
自己create一个array变成[1,4,8,14,16,19]. 1point 3acres 璁哄潧
然后int r = rand() % ar ...

恩,我的想法跟你是一样的.只是不知道那个叫cumulative array.
回复 支持 反对

使用道具 举报

chris612ku 发表于 2017-9-16 10:30:05 | 显示全部楼层
cutehuazai 发表于 2017-9-16 10:14. from: 1point3acres.com/bbs
恩,我的想法跟你是一样的.只是不知道那个叫cumulative array.

我也就是脑袋想什么就讲什么而已,也没有什么特定的名字啦
哈哈
回复 支持 反对

使用道具 举报

goha111 发表于 2017-9-17 04:02:42 | 显示全部楼层
请问lz是哪天面试的~~   
回复 支持 反对

使用道具 举报

51offer888 发表于 2017-9-17 05:25:34 | 显示全部楼层
chris612ku 发表于 2017-9-16 09:40
假设[1,3,4,6,2,3]是given weights
自己create一个array变成[1,4,8,14,16,19]
然后int r = rand() % ar ...

查了下没有array.back()这个function啊?这个function是做什么的呢
你怎么知道这道题用 int r = rand() % array.back() + 1 用这个公式啊
谢谢!
回复 支持 反对

使用道具 举报

chris612ku 发表于 2017-9-17 07:30:38 | 显示全部楼层
51offer888 发表于 2017-9-17 05:25
查了下没有array.back()这个function啊?这个function是做什么的呢
你怎么知道这道题用 int r = rand()  ...
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
你不用太在意array.back()是什么
这个写法只是因为地里有C++, Java, Python的选手,所以写个简单大家比较看的懂的而已
其实就是假设你有一个array他的size是len好了, array.back()在这里的意思就是array[len-1]

用int r = rand() % array[len-1] + 1这个公式是因为
假设我的input weights是[2, 3, 2, 4, 1]好了,所以我会把他转化成cumulative array [2, 5, 7, 11, 12] 然后做binary search
+1的原因是因为这里要的东西是从1~12而不是0~11

大概是这个意思
回复 支持 反对

使用道具 举报

AnthonyNeu 发表于 2017-10-9 11:05:37 | 显示全部楼层
和这个比较类似了: http://www.1point3acres.com/bbs/thread-294445-1-1.html

另一个帖子找到的答案,帖子找不到了: https://stackoverflow.com/questions/6737283/weighted-randomness-in-java
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-11-24 17:49

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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