回复: 32
收起左侧

fb电面,题写对,follow up没答好,挂得好可惜

本楼:   👍  1
100%
0%
0   👎
全局:   15
94%
6%
1

2015(4-6月) 码农类General 硕士 全职@facebook - 内推 - 技术电面  | | Fail | 在职跳槽

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

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
早上电面,题不难,都写出来了,但还是挂了,稀里糊涂的,后来回想应该是一些follow up没答好的缘故。面试的是个美国人。具体如下:第一题:是否有连续的sub数组何为target。我的代码:
public boolean containsSum(List<Integer> list, int target){
    if(list==null) return false;
    HashSet<Integer> set = new HashSet<>();
    int sum = 0;
    for(int i=0; i<list.length(); i++){
        sum = sum+list.get(i);
        set.add(sum);
        if(set.contains(sum-target)) return true;
    }
    return false;
}

后来问时空复杂度n,n。又问哪句会造成算法是n方。我没想出来,他说
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
return ret;

}
问时空复杂度,问写的这个叫什么approach,我说level order,问还叫什么我说breadth first。ok。这题应该没问题。


稀里糊涂挂了以后问hr有何feedback,只说加强cs fundamental。





补充内容 (2015-4-22 11:58):
其实第一题有个bug,面试官当时也没发现,就是应该先set.add(0);

补充内容 (2015-10-20 04:56):
第一题有个条件,数组里的数都是正数

评分

参与人数 6大米 +37 收起 理由
mmliu + 3 感谢分享!
鸽子 + 3 感谢分享!
zach + 20
cjlm007 + 5 感谢分享!
rengokantai + 3 n/a

查看全部评分


上一篇:epic OA 面经
下一篇:04/21 shopkick 电面

本帖被以下淘专辑推荐:

  • · fb|主题: 33, 订阅: 14
 楼主| magicalcan 2015-5-1 14:12:58 | 显示全部楼层
本楼:   👍  1
100%
0%
0   👎
全局:   15
94%
6%
1
yiliaobailiao 发表于 2015-4-30 05:58
为什么我觉得楼主第一题只是考虑了从0开始的sub了呢?还是我理解错了。。。

如果sum[i]-sum[j]=target, i>j, sum[j] (也就是target - sum[i]) 已经在hashset里存过,那么j+1到 i 就是所求的sublist,当然set里要先加个0。j 可以是大于等于0的啊

补充内容 (2015-5-1 14:13):
所有sum,都是sum[i]

补充内容 (2015-5-1 14:14):
晕,这个格式怎么搞的,我想说都是sum【 i 】
回复

使用道具 举报

yuxrose 2015-4-22 10:07:51 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   149
99%
1%
1
没太看明白这段:
后来问时空复杂度n,n。又问哪句会造成算法是n方。我没想出来,他说sum = sum+list.get(i);才发现input只说是list,我说如果是自己写的Linked list可能get就是n了(其实LINKEDLIST java api也是n)。
又说还有set.add(sum);我有点不明白,想了想说如果java api应该没问题,自己写的话如果initial size到了就必须重新分配一个大一点的空间把以前的copy过去,所以是n。

---arraylist.get(i) 是O(1)吧, linkedlist不能写作list啊,这行怎么会是O(n)?
set的add operation也是O(1)啊。。。这和是不是自己写的有什么关系?

回复

使用道具 举报

 楼主| magicalcan 2015-4-22 12:35:48 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   15
94%
6%
1
yuxrose 发表于 2015-4-22 10:07
没太看明白这段:
后来问时空复杂度n,n。又问哪句会造成算法是n方。我没想出来,他说sum = sum+list.get( ...

LinkedList也是list interface里的。它的get(i)是n。但其实用iterator的方式就没事,用index i就不行了。
set.add和arraylist.add不是每次都是(1),是平均的。因为他们有一个initial size超了就重新分配个更大的空间,然后把之前的复制过去。面试官还说了what if it is full.....考到这也是给跪了
回复

使用道具 举报

yuxrose 2015-4-22 10:10:57 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   149
99%
1%
1
我觉得第一题唯一的问题就是有个bug似乎,如果target是0的情况下, 这两行肯定会return true的,
set.add(sum);
        if(set.contains(sum-target)) return true;

回复

使用道具 举报

 楼主| magicalcan 2015-4-22 12:37:40 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   15
94%
6%
1
yuxrose 发表于 2015-4-22 10:10
我觉得第一题唯一的问题就是有个bug似乎,如果target是0的情况下, 这两行肯定会return true的,
set.add( ...

有道理,这题有个条件是list里是正整数。所以最开始价格条件target小于等于0直接false就行了。不过面试官也没看出来这个
回复

使用道具 举报

yuxrose 2015-4-22 12:50:16 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   149
99%
1%
1
magicalcan 发表于 2015-4-22 12:35
LinkedList也是list interface里的。它的get(i)是n。但其实用iterator的方式就没事,用index i就不行了 ...

我觉得知识点考的太细了。。。有点挑刺的感觉。。。
祝福lz,这次肯定攒了不少人品。。。。
回复

使用道具 举报

liushen 2015-4-22 12:54:41 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   7
100%
0%
0
。。。。条件里面有list里面都是正整数啊。。。这个经典的min window题为啥没有准备好。。。
回复

使用道具 举报

zq13667243992 2015-4-22 13:35:17 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   9
82%
18%
2
http://www.geeksforgeeks.org/find-subarray-with-given-sum/

楼主挂的原因我觉得应该是没有给出面试官想要的解法
回复

使用道具 举报

yuxrose 2015-4-22 13:57:29 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   149
99%
1%
1
zq13667243992 发表于 2015-4-22 13:35
http://www.geeksforgeeks.org/find-subarray-with-given-sum/

楼主挂的原因我觉得应该是没有给出面试官 ...

你是说那个two pointer一起移动的解法吗?但关键是面试官并没有要求lz优化啊,他如果问,有没有in place的做法,lz也许也准备了这个solution啊,可是他一直纠结时间复杂度怎么优化,而不是空间复杂度,然后又挂lz,还是很可惜吧。。
回复

使用道具 举报

pandafolk 2015-4-22 21:19:18 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   219
96%
4%
8
fb最近还在面全职?LZ是experienced的engineer么?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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