10月28,K神开课讲数据科学,你来吗?


一亩三分地论坛

 找回密码
 获取更多干活,快来注册
Babeltime游戏工作室招工程师、美术和策划
Tubi TV招安卓、前端和机器学习工程师
把贵司招聘信息放这里
查看: 868|回复: 14
收起左侧

F店面

[复制链接] |试试Instant~ |关注本帖
9zai 发表于 4 天前 | 显示全部楼层 |阅读模式

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

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

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

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

评分

1

查看全部评分

本帖被以下淘专辑推荐:

jigsaw_Becky 发表于 4 天前 | 显示全部楼层
没有理解题目。。。。麻烦谁能解释一下吗?

是这个意思吗?

“ABC”的概率是80%,“DE”的概率是20%。
问:如果概率是50%,应该返回哪个string?

怎么感觉好奇怪。。。

.1point3acres缃谢谢!!!!

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

使用道具 举报

chris612ku 发表于 4 天前 | 显示全部楼层
cutehuazai 发表于 2017-9-16 09:13
什么叫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
For example:r = 10,就是属于第四个(idx = 3)的element

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

谢谢
回复 支持 1 反对 0

使用道具 举报

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

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

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

哦哦,了解,谢谢楼主的回复
这个应该是一个面经的变形,面经原题是Random Pick in an array with given Weights,
就是每个offset有自己的的weights,然后按照weights的概率return相对应的index

自己的做法是create一个cumulative array,然后random generate 一个number mod by total weights,
然后做binary search,觉得楼主这题可以做类似的做法

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

谢谢
回复 支持 反对

使用道具 举报

summerlismile 发表于 4 天前 | 显示全部楼层
想到一个算法 和楼主讨论下 . visit 1point3acres.com for more.

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

谢谢
回复 支持 反对

使用道具 举报

cutehuazai 发表于 4 天前 来自手机 | 显示全部楼层
summerlismile 发表于 2017-9-16 07:50
想到一个算法 和楼主讨论下
. 1point3acres.com/bbs
建立一个长度是100的数组 string[] array = new string[100]. 标记一个inde ...

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

使用道具 举报

cutehuazai 发表于 4 天前 来自手机 | 显示全部楼层
chris612ku 发表于 2017-9-16 06:39
哦哦,了解,谢谢楼主的回复
这个应该是一个面经的变形,面经原题是Random Pick in an array with given ...

什么叫cumulative array
回复 支持 反对

使用道具 举报

cutehuazai 发表于 4 天前 | 显示全部楼层
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 ...
.1point3acres缃
恩,我的想法跟你是一样的.只是不知道那个叫cumulative array.
回复 支持 反对

使用道具 举报

chris612ku 发表于 4 天前 | 显示全部楼层
cutehuazai 发表于 2017-9-16 10:14
恩,我的想法跟你是一样的.只是不知道那个叫cumulative array.

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

使用道具 举报

goha111 发表于 3 天前 | 显示全部楼层
请问lz是哪天面试的~~   
回复 支持 反对

使用道具 举报

51offer888 发表于 3 天前 | 显示全部楼层
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 发表于 3 天前 | 显示全部楼层
51offer888 发表于 2017-9-17 05:25
查了下没有array.back()这个function啊?这个function是做什么的呢. 1point 3acres 璁哄潧
你怎么知道这道题用 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
. Waral 鍗氬鏈夋洿澶氭枃绔,
大概是这个意思
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-9-20 03:10

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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