国内一线互联网在职谈谈对归国留学生的看法

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
E轮2.5亿美元融资
K12教育独角兽一起作业
北京-诚聘人工智能/教育/大数据岗
[Google级团队]
实时大数据分析领域践行者
北京/深圳-大数据/搜索/机器学习岗
码农求职神器Triplebyte:
不用海投
内推多家公司面试
把贵司招聘信息放这里
查看: 6910|回复: 23
收起左侧

#我也有今天系列#FB面经 10.12

[复制链接] |试试Instant~ |关注本帖
plich 发表于 2015-10-13 05:59:53 | 显示全部楼层 |阅读模式

2015(10-12月) 码农类General 博士 实习@Facebook - 内推 - 技术电面  | Other | 其他

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

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

x
1.老印,ads组的,我填的三个preference并没有,心一凉……
2.吹比阶段,并不敢提太多security方面的research,就说自己上过统计课,ML课然后提了一下kaggle test,他问细节,我立刻认怂(就是个svm+kennerl method啦)

3.第一题:move non-zero element to the left
装纯问了一下是不是要保持order,他说不用也行,可是我只会保持的解法啊……迅猛搞定,被他发现了一个bug,立刻修复
他似乎没大懂,要我dry run一下

4.第二题 find random maximum。就是一个int array 里面会有一到多个maximum,返回一个随机maximum的index
我说要3 pass,他提醒了一下,改成了2 pass. from: 1point3acres.com/bbs
然后他问了一个特别坑爹的问题——能不能one pass 搞定,还说“我看你简历上说懂cryptography,你应该知道”……我知道个毛线啊!
赶着扯赶着支支吾吾然后他跟我说了一个关键词“reservoir sampling”
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
之后胡扯了10多分钟吧。. From 1point 3acres bbs

求过求积分. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴

. 1point3acres.com/bbs
补充内容 (2015-10-13 12:01):.鏈枃鍘熷垱鑷1point3acres璁哄潧
@MCwong 回复的代码就是reservior sampling的例子

补充内容 (2015-10-13 12:24):
第二题随机index要求服从均匀分布

评分

5

查看全部评分

本帖被以下淘专辑推荐:

  • · fb|主题: 33, 订阅: 16
MCwong 发表于 2015-10-13 11:18:23 | 显示全部楼层
写了下第二题, 供参考讨论
  1. public class findIndexOfMaxValue {
  2.         public int find(int[] A) {
  3.                 Random rand = new Random();
  4.                 int[] reservior = new int[1];
  5.                 int maxValue = Integer.MIN_VALUE;
  6.                 int numOfMaxValue = 0;. more info on 1point3acres.com
  7.                 for(int i = 0; i < A.length; i++) {
  8.                         if(A[i] == maxValue) {
  9.                                 numOfMaxValue++;
  10.                                 int randNum = rand.nextInt(numOfMaxValue);
  11.                                 if(randNum < 1) {. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  12.                                         reservior[0] = i;
  13.                                 }
  14.                         }

  15.                         if(A[i] > maxValue) {
  16.                                 maxValue = A[i];
  17.                                 numOfMaxValue = 1;
  18.                                 reservior[0] = i;
  19.                         }.1point3acres缃
  20.                 }
  21.                 return reservior[0];
  22.         }       
  23.         public static void main(String[] args) {
  24.                 findIndexOfMaxValue example = new findIndexOfMaxValue();. 1point 3acres 璁哄潧
  25.                 int count4 = 0, count6 = 0;
  26.                 int[] A = {1,2,3,4,5,3,5};
  27.                 for(int i = 0; i<10000; i++) {        . more info on 1point3acres.com
  28.                         int res = example.find(A);
  29.                         if(res == 4) {.鏈枃鍘熷垱鑷1point3acres璁哄潧
  30.                                 count4 ++;
    . more info on 1point3acres.com
  31.                         }
  32.                         if(res == 6) {
  33.                                 count6 ++;
  34.                         }
  35.                 }
  36.                 System.out.println("6 appears " + count6 + " times");.鏈枃鍘熷垱鑷1point3acres璁哄潧
  37.                 System.out.println("4 appears " + count4 + " times");
  38.         }. From 1point 3acres bbs
  39. }
复制代码
回复 支持 2 反对 0

使用道具 举报

returning 发表于 2015-10-13 10:52:32 | 显示全部楼层
宝贝忆彼岸 发表于 2015-10-13 07:05
如果是按照reservoir sampling,应该是用一个count算maximum的个数
从头到尾一次便利就可以,先让array[0] ...

求教你写的具体什么意思。
reservoir sampling不是说n个数中间等概率选出k个吗?假设一开始几个就是最大数,随着i变大,即使以k/i的概率替换,也有可能出现最大的数全部被替换掉啊,是吗?
求教。. From 1point 3acres bbs
.鏈枃鍘熷垱鑷1point3acres璁哄潧
补充内容 (2015-10-13 10:57):
仔细看了下,你写的可以保证最后总是剩下最大的,但是怎么保证等概率取的其中一个剩下的呢?这个count需要变大吧,不然每次1/count的概率替换岂不是每次一定替换?-google 1point3acres

补充内容 (2015-10-13 11:00):
其实这样的,每次确实只维护一个最大值,但是同时维护这个最大值出现了多少次,假设目前是第i个最大值,那么就按照1/i的概率替换第一个,这样就是reservoir sampling了
回复 支持 0 反对 1

使用道具 举报

宝贝忆彼岸 发表于 2015-10-13 07:05:39 | 显示全部楼层
如果是按照reservoir sampling,应该是用一个count算maximum的个数
从头到尾一次便利就可以,先让array[0]作为选出的maximum,当前元素比之前的大,就直接替换,count = 1,遇到当前比选出的元素小的,忽略,一样的,用1/count的概率替换
回复 支持 1 反对 0

使用道具 举报

坐看云起 发表于 2015-10-13 06:50:29 | 显示全部楼层
第二题是不是可以从一个随机位置开始便利,然后找到最大值?
回复 支持 反对

使用道具 举报

 楼主| plich 发表于 2015-10-13 08:24:58 | 显示全部楼层
宝贝忆彼岸 发表于 2015-10-13 07:05. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
如果是按照reservoir sampling,应该是用一个count算maximum的个数. Waral 鍗氬鏈夋洿澶氭枃绔,
从头到尾一次便利就可以,先让array[0] ...

多谢~ 我还是吃了没文化的亏啊
回复 支持 反对

使用道具 举报

宝贝忆彼岸 发表于 2015-10-13 08:31:08 | 显示全部楼层
plich 发表于 2015-10-13 08:24
多谢~ 我还是吃了没文化的亏啊

不客气,我也是前几天看面经第一次看到这个概念
回复 支持 反对

使用道具 举报

坐看云起 发表于 2015-10-13 12:02:57 | 显示全部楼层
returning 发表于 2015-10-13 10:52. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
求教你写的具体什么意思。
reservoir sampling不是说n个数中间等概率选出k个吗?假设一开始几个就是最大 ...

是不是可以简单一些?就是随机数组里一个位置,从这个位置开始找到第一个(或最后一个)最大值?
回复 支持 反对

使用道具 举报

 楼主| plich 发表于 2015-10-13 12:16:19 | 显示全部楼层
坐看云起 发表于 2015-10-13 12:02
是不是可以简单一些?就是随机数组里一个位置,从这个位置开始找到第一个(或最后一个)最大值?

那样找到的既不一定是最大值.鐣欏璁哄潧-涓浜-涓夊垎鍦
找到的最大值index也不一定是均匀分布
回复 支持 反对

使用道具 举报

坐看云起 发表于 2015-10-13 12:18:26 | 显示全部楼层
plich 发表于 2015-10-13 12:16
那样找到的既不一定是最大值
找到的最大值index也不一定是均匀分布

循环访问啊,也只把整个数组遍历一遍,只不过起点不一样
具体来说,就是 for(int i = begin; i < begin + nums.length; i++), 然后访问的时候,用 i % nums.length

补充内容 (2015-10-13 12:19):
抽了。。。
回复 支持 反对

使用道具 举报

坐看云起 发表于 2015-10-13 12:18:35 | 显示全部楼层
plich 发表于 2015-10-13 12:16. 1point3acres.com/bbs
那样找到的既不一定是最大值
找到的最大值index也不一定是均匀分布

循环访问啊,也只把整个数组遍历一遍,只不过起点不一样
具体来说,就是 for(int i = begin; i < begin + nums.length; i++), 然后访问的时候,用 i % nums.length
回复 支持 反对

使用道具 举报

 楼主| plich 发表于 2015-10-13 12:22:12 | 显示全部楼层
坐看云起 发表于 2015-10-13 12:18
循环访问啊,也只把整个数组遍历一遍,只不过起点不一样
具体来说,就是 for(int i = begin; i < begin  ...

循环访问不是均匀分布
[5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]
这种情况第一个index被返回的概率就会大于别的
回复 支持 反对

使用道具 举报

坐看云起 发表于 2015-10-13 12:23:05 | 显示全部楼层
plich 发表于 2015-10-13 12:22
循环访问不是均匀分布
[5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]
这种情况第一个index被返回的概率就 ...

哦哦,有道理
回复 支持 反对

使用道具 举报

majiamajia 发表于 2015-10-13 13:08:47 | 显示全部楼层
第二题类似蓄水池,只不过我们只用维持一个K=1的蓄水池储存MAX.
回复 支持 反对

使用道具 举报

 楼主| plich 发表于 2015-10-13 19:39:15 | 显示全部楼层
majiamajia 发表于 2015-10-13 13:08
第二题类似蓄水池,只不过我们只用维持一个K=1的蓄水池储存MAX.
-google 1point3acres
可否详细描述一下蓄水池……
回复 支持 反对

使用道具 举报

rhett.lhy 发表于 2015-10-13 20:22:01 | 显示全部楼层
lz你的第一preference是security组吗?
回复 支持 反对

使用道具 举报

 楼主| plich 发表于 2015-10-13 20:45:06 | 显示全部楼层
rhett.lhy 发表于 2015-10-13 20:22
lz你的第一preference是security组吗?

是啊……你就在security组么?

补充内容 (2015-10-13 20:47):. 1point3acres.com/bbs
跟ads组的sameer熟么?是他面的我,在fb干了两年的老印
回复 支持 反对

使用道具 举报

rhett.lhy 发表于 2015-10-13 20:55:24 | 显示全部楼层
plich 发表于 2015-10-13 20:45. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
是啊……你就在security组么?

补充内容 (2015-10-13 20:47):

没啊我不在security组,我实习时候去的site integrity。会不会是因为security招人少……
回复 支持 反对

使用道具 举报

 楼主| plich 发表于 2015-10-15 10:18:43 | 显示全部楼层
rhett.lhy 发表于 2015-10-13 20:55
没啊我不在security组,我实习时候去的site integrity。会不会是因为security招人少……

求罩啊……说不定二面就是学长你来搞呢@@
回复 支持 反对

使用道具 举报

rhett.lhy 发表于 2015-10-15 11:16:14 | 显示全部楼层
plich 发表于 2015-10-15 10:18
求罩啊……说不定二面就是学长你来搞呢@@

我明年才毕业呢哈哈~
回复 支持 反对

使用道具 举报

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

关闭

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

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

custom counter

GMT+8, 2018-4-26 03:51

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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