一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推多家公司面试
Airbnb 数据科学职位
in analytics and inference
游戏初创公司
招聘工程师、Designer和游戏策划
游戏初创公司DreamCraft招聘工程师、UIUX Designer和游戏策划
电商初创公司Good Days
招聘SDE/UI/TPM实习生
把贵司招聘信息放这里
查看: 1647|回复: 15
收起左侧

F店面

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

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

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

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

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

评分

2

查看全部评分

本帖被以下淘专辑推荐:

jigsaw_Becky 发表于 2017-9-16 12:12:23 | 显示全部楼层
没有理解题目。。。。麻烦谁能解释一下吗?

是这个意思吗?

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

怎么感觉好奇怪。。。

谢谢!!!!. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴

补充内容 (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
什么叫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更优解或点评. from: 1point3acres.com/bbs

谢谢
回复 支持 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
.鐣欏璁哄潧-涓浜-涓夊垎鍦
自己的做法是create一个cumulative array,然后random generate 一个number mod by total weights,
然后做binary search,觉得楼主这题可以做类似的做法

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

谢谢
回复 支持 反对

使用道具 举报

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]。. 鍥磋鎴戜滑@1point 3 acres

谢谢
回复 支持 反对

使用道具 举报

cutehuazai 发表于 2017-9-16 09:12:43 来自手机 | 显示全部楼层
summerlismile 发表于 2017-9-16 07:50.鏈枃鍘熷垱鑷1point3acres璁哄潧
想到一个算法 和楼主讨论下
. Waral 鍗氬鏈夋洿澶氭枃绔,
建立一个长度是100的数组 string[] array = new string[100]. 标记一个inde ...
. 1point3acres.com/bbs
what if概率可以是小数。
回复 支持 反对

使用道具 举报

cutehuazai 发表于 2017-9-16 09:13:58 来自手机 | 显示全部楼层
chris612ku 发表于 2017-9-16 06:39. 1point 3acres 璁哄潧
哦哦,了解,谢谢楼主的回复
这个应该是一个面经的变形,面经原题是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]
然后int r = rand() % ar ...

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

使用道具 举报

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

我也就是脑袋想什么就讲什么而已,也没有什么特定的名字啦.鏈枃鍘熷垱鑷1point3acres璁哄潧
哈哈
回复 支持 反对

使用道具 举报

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 用这个公式啊. Waral 鍗氬鏈夋洿澶氭枃绔,
谢谢!
回复 支持 反对

使用道具 举报

chris612ku 发表于 2017-9-17 07:30:38 | 显示全部楼层
51offer888 发表于 2017-9-17 05:25.鏈枃鍘熷垱鑷1point3acres璁哄潧
查了下没有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, 2018-1-21 14:18

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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