要回国了,写个简单的总结吧。

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投
内推多家公司面试
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
把贵司招聘信息放这里
查看: 10513|回复: 29
收起左侧

贡献一个Facebook题目

[复制链接] |试试Instant~ |关注本帖
martin5678 发表于 2016-6-22 02:52:44 | 显示全部楼层 |阅读模式

2016(1-3月) 码农类General 硕士 全职@Facebook - 内推 - 技术电面  | Other | 在职跳槽

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

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

x
Facebook电面,应该是阿三面试官,碰到了一个题目貌似版上没有看到过所以来贡献一下。

Q1:first bad version 以及变种。 变种是如果不知道一共有多少版本的情况下应该怎么找。

Q2:Min Queue, 跟Min Stack类似, 实现一个Queue, 然后O(1)复杂度获得这个Queue里最小的元素。


补充内容 (2016-6-22 02:53):. 一亩-三分-地,独家发布
最近还要面试,但是有的帖子里面的附件权限不够下载,烦请各位觉得题目有帮助的打赏点积分多谢啦!

评分

12

查看全部评分


上一篇:L 电面
下一篇:Google onsite 一道算法和最后一道系统题
jimmyzzxhlh 发表于 2016-6-23 06:54:16 | 显示全部楼层
jimmyzzxhlh 发表于 2016-6-23 06:46
Min Queue似乎要比Min Stack难
http://stackoverflow.com/questions/12054415/get-min-max-in-o1-time-fro ...
  1.         class MinQueue {
  2.                 . 一亩-三分-地,独家发布
  3.                 Queue<Integer> queue;
  4.                 Deque<Integer> deque;
  5.                 .留学论坛-一亩-三分地
  6.                 public MinQueue() {
  7.                         queue = new LinkedList<Integer>();
  8.                         deque = new ArrayDeque<Integer>();
  9.                 }. 牛人云集,一亩三分地
  10.                
  11.                 public void offer(int x) {
  12.                         if (queue.size() == 0) {
  13.                                 queue.offer(x);
  14.                                 . 围观我们@1point 3 acres
  15.                                 deque.offer(x);
  16.                         }
  17.                         else {
    . more info on 1point3acres
  18.                                 queue.offer(x);
  19.                                 for (Iterator<Integer> it = deque.descendingIterator(); it.hasNext();) {
  20.                                         if (it.next() > x) {
  21.                                                 it.remove();
  22.                                         }
  23.                                 }
    . more info on 1point3acres
  24.                                 deque.offer(x);. visit 1point3acres for more.
  25.                         }
  26.                 }
  27.                
  28.                 public int remove() {. 围观我们@1point 3 acres
  29.                         if (queue.size() == 0) return -1;
  30.                         int val = 0;
  31.                         if (queue.peek() == deque.peek()) {
  32.                                 val = queue.remove();
  33.                                 deque.remove();
  34.                         }.本文原创自1point3acres论坛
  35.                         else {
  36.                                 val = queue.remove();
  37.                         }.留学论坛-一亩-三分地
  38.                         return val;
  39.                 }
  40.                
  41.                 public int getMin() {
  42.                         return deque.getFirst();
  43.                 }
  44.                
  45.         }
复制代码
回复 支持 3 反对 0

使用道具 举报

readman 发表于 2016-6-22 03:08:39 | 显示全部楼层
不知道end在哪就指数找end呗...2^n找.. 比如某个n能找到了, 就知道start在[2^n-1, 2^n]了
回复 支持 3 反对 0

使用道具 举报

mdyuki1016 发表于 2016-6-24 12:47:50 | 显示全部楼层
239. Sliding Window Maximum
回复 支持 1 反对 0

使用道具 举报

wtcupup 发表于 2016-6-22 03:50:31 | 显示全部楼层
https://www.quora.com/Given-an-array-of-unknown-size-n-how-do-you-find-the-exact-value-of-n-in-O-log-n-time
回复 支持 1 反对 0

使用道具 举报

blackrose 发表于 2016-6-22 03:00:27 | 显示全部楼层
first bad version 变种怎么搞。。。。之前好像看过一个比那容易. 牛人云集,一亩三分地

补充内容 (2016-6-22 03:00):
binary search in unlmited input的。忘记了。。。。
回复 支持 反对

使用道具 举报

blackrose 发表于 2016-6-22 03:12:04 | 显示全部楼层
readman 发表于 2016-6-22 03:08
不知道end在哪就指数找end呗...2^n找.. 比如某个n能找到了, 就知道start在[2^n-1, 2^n]了

你是说 先定一个end,如果end不是 0,就 start = end, end  = end * 2 是吧。然后check boundry,超了,就缩进mid。
回复 支持 反对

使用道具 举报

readman 发表于 2016-6-22 03:19:24 | 显示全部楼层
没boundary么不是....有boundary就二分了....
Mobile Apps Category (English)728x90
回复 支持 反对

使用道具 举报

blackrose 发表于 2016-6-22 03:21:38 | 显示全部楼层
readman 发表于 2016-6-22 03:19. 留学申请论坛-一亩三分地
没boundary么不是....有boundary就二分了....
. 一亩-三分-地,独家发布
是不知道boundry在哪里吧。。。
回复 支持 反对

使用道具 举报

 楼主| martin5678 发表于 2016-6-22 03:41:13 | 显示全部楼层
blackrose 发表于 2016-6-22 03:21
是不知道boundry在哪里吧。。。

我的解法跟3楼说的类似,比如就是每次1000个数这样子跳,然后找到之后就用二分法在那个区间里找就行了。
回复 支持 反对

使用道具 举报

sheepmiemies 发表于 2016-6-22 14:10:58 | 显示全部楼层
感觉和3楼说的一样,把二分反过来用。
. From 1point 3acres bbs1. 找2^n直到越界,然后在 [2^(n-1), 2^n] 范围内二分来找边界。
2. 返回正常二分。
一共就是 3*logn
回复 支持 反对

使用道具 举报

jimmyzzxhlh 发表于 2016-6-23 06:46:38 | 显示全部楼层
Min Queue似乎要比Min Stack难
http://stackoverflow.com/questions/12054415/get-min-max-in-o1-time-from-a-queue
stack overflow上有一个用queue和deque的解释,不知道lz是不是这样实现的?
回复 支持 反对

使用道具 举报

zhaoshiwen520 发表于 2016-6-23 08:44:02 | 显示全部楼层

多谢代码,请问为啥要用deque,两个queue感觉也可以解决问题?
回复 支持 反对

使用道具 举报

jimmyzzxhlh 发表于 2016-6-23 08:49:26 | 显示全部楼层
zhaoshiwen520 发表于 2016-6-23 08:44. 牛人云集,一亩三分地
多谢代码,请问为啥要用deque,两个queue感觉也可以解决问题?
来源一亩.三分地论坛.
我那个做法里需要反过来遍历Deque删除所有deque里比当前的x大的元素,queue不能反过来遍历
回复 支持 反对

使用道具 举报

zhaoshiwen520 发表于 2016-6-23 08:53:53 | 显示全部楼层
jimmyzzxhlh 发表于 2016-6-23 08:49
我那个做法里需要反过来遍历Deque删除所有deque里比当前的x大的元素,queue不能反过来遍历
. From 1point 3acres bbs
哦,明白了,queue不能反向便利
回复 支持 反对

使用道具 举报

highplace 发表于 2016-6-24 16:07:44 | 显示全部楼层
用两个minstack实现minqueue也行,平均也是O1
回复 支持 反对

使用道具 举报

BlackPen 发表于 2016-9-1 10:15:36 | 显示全部楼层
祝楼主好运!
回复 支持 反对

使用道具 举报

hello2pig 发表于 2016-9-14 21:46:26 | 显示全部楼层
jimmyzzxhlh 发表于 2016-6-23 08:49
我那个做法里需要反过来遍历Deque删除所有deque里比当前的x大的元素,queue不能反过来遍历

一样的思想 用两个stack就可以解决了
回复 支持 反对

使用道具 举报

zzhmxf 发表于 2016-10-9 06:12:22 | 显示全部楼层
hello2pig 发表于 2016-9-14 21:46-google 1point3acres
一样的思想 用两个stack就可以解决了
. Waral 博客有更多文章,
请问两个stack怎么做?谢谢
回复 支持 反对

使用道具 举报

何打发123 发表于 2016-10-9 10:36:36 | 显示全部楼层
sheepmiemies 发表于 2016-6-22 14:10.1point3acres网
感觉和3楼说的一样,把二分反过来用。
1. 找2^n直到越界,然后在 [2^(n-1), 2^n] 范围内二分来找边界。. 1point 3acres 论坛
2 ...

您好~ 请问
然后在 [2^(n-1), 2^n] 范围内二分来找边界。
2^(n-1)是good version  2^n是bad version 这里找到了应该就是答案了为什么需要返回正常二分
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2018-5-27 09:36

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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