回复: 20
跳转到指定楼层
上一主题 下一主题
收起左侧

Facebook Intern 电面一轮 + Onsite一轮

全局:

2015(4-6月) 码农类General 硕士 实习@meta - 内推 - 技术电面 Onsite  | | Other | 其他

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

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

x
2015暑假Intern,星期五刚结束onsite,特地发来攒人品。
土木转行所以细节可能粗糙,请谅解。

感想:
0,其实我1月初投过,当时没在招人,催了下HR就被挂了。最近听说同学又拿到面试,就特地再找了联系我同学的那个recruiter点对点问,成功拿到。
1,他们家果然很多leetcode原题,然后考到了不要太开心,记住那些解法的复杂度,他们会和你聊是否可以时间换空间,或者空间换时间。因为很多原题,所以电面的时候千万别谦虚,把leetcode开着吧。
2,culture fit这个部分虽然没有直接问,但是感觉到还是存在的,他们一般都会问下为啥选FB,你的兴趣方向什么的,这个可以参考他们家的5个core values,对着说几个点就好了。
3,他们家onsite就早上过去一轮coding就结束了,然后吃午饭+和前intern聊天+校区逛一圈就结束了。如果催得紧的话,似乎
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
数。然后慢慢往负数那边移动,每次比较新包含的2个负数的乘积和去掉的两个正数的乘积,最好常数时间,最差O(k)。当然因为k可能比正数数量多,所以要处理好不少特殊case。完了仔细一想,这特么不就是我中间提到的那个思路么!不过考虑到分数啊0啊溢出啊7788的他都是途中一边说一边加,而且他说没见过我中间那种思路,可能真的就是他临时想到的吧。

以上就是这样,希望大家引以为鉴,对方放水要好好领情别作死。。。
最后祝福自己一记,让我再来一次也未必会更好,尽力了就没有遗憾。


评分

参与人数 2大米 +23 收起 理由
frank11118 + 3 感谢分享!
lamental + 20 坚持的不错,再接再厉!

查看全部评分


上一篇:一个很重要的 airbnb onsite 问题
下一篇:Bloomberg Intern 校园面试
推荐
 楼主| 堕落的猴子 2015-10-23 02:02:20 | 只看该作者
全局:
JamesJi 发表于 2015-10-23 01:48
不用swap用write
这句话猴哥可以详细解释一下吗

就是直接A[l] = A[r],A[r]上什么值留下来无所谓了。

评分

参与人数 1大米 +3 收起 理由
frank11118 + 3 感谢分享!

查看全部评分

回复

使用道具 举报

推荐
siren01 2015-4-6 06:44:45 | 只看该作者
全局:
siren01 发表于 2015-4-6 06:26
up~ 有大神解释下这题解法么?

按照楼主的思想写的,感觉一次想到不容易,当一个演员是多么的重要
  1. public static long maxK_Product(Integer[] num, int k){
  2.                 if(num==null || num.length==0 || k<=0 || k>num.length)
  3.                         return 0;
  4.                 long result = Long.MIN_VALUE;
  5.                 Arrays.sort(num, new Comparator<Integer>(){
  6.                         public int compare(Integer a, Integer b){
  7.                                 if((long)(a*b)>0){
  8.                                         return b - a;
  9.                                 }
  10.                                 else if((long) (a*b)==0){
  11.                                         if(a==0)
  12.                                                 return 1;
  13.                                         else
  14.                                                 return -1;
  15.                                 }
  16.                                 else{
  17.                                         return a>0 ? 1 : -1;
  18.                                 }
  19.                         }
  20.                 });
  21.                 long tmp = 1;
  22.                 int count = 0;
  23.                 for(int i=0; i<num.length; ++i){
  24.                         if(num[i]==0){
  25.                                 result = Math.max(0, result);
  26.                                 break;
  27.                         }
  28.                         count++;
  29.                         tmp *= num[i];
  30.                         if(count==k){
  31.                                 result = Math.max(result, tmp);
  32.                                 tmp = tmp/num[i+1-k];
  33.                                 count--;
  34.                         }
  35.                 }
  36.                 return result;
  37.         }
复制代码
回复

使用道具 举报

🔗
lch04 2015-4-5 13:36:43 | 只看该作者
全局:
土木同胞握手
你这个不一定挂吧。我感觉还是很有希望的。
当然,见过的题就不要太诚实了。
回复

使用道具 举报

🔗
haungge0385 2015-4-6 01:34:07 | 只看该作者
全局:
可以详细说一下k个乘积最大的数吗?是怎样的N个数?
是给N,比如N=3,k=2, 那么   -1,-2,-3,1,2,3,,然后最大是2*3吗?
回复

使用道具 举报

🔗
 楼主| 堕落的猴子 2015-4-6 05:46:22 | 只看该作者
全局:
haungge0385 发表于 2015-4-6 01:34
可以详细说一下k个乘积最大的数吗?是怎样的N个数?
是给N,比如N=3,k=2, 那么   -1,-2,-3,1,2,3,,然 ...

噢,随机的N个数,我上面举例只是方便对比。

就是一个有N个数的数组而已。
回复

使用道具 举报

🔗
siren01 2015-4-6 06:05:21 | 只看该作者
全局:
额....啥都不说了,直接上代码,楼主加油!
  1.         public static long maxK_Product(Integer[] num, int k){
  2.                 if(num==null || num.length==0 || k<=0 || k>num.length)
  3.                         return 0;
  4.                 long result = Long.MIN_VALUE;
  5.                 Arrays.sort(num, new Comparator<Integer>(){
  6.                         public int compare(Integer a, Integer b){
  7.                                 return Math.abs(b) - Math.abs(a);
  8.                         }
  9.                 });
  10.                 long tmp = 1;
  11.                 int count = 0;
  12.                 for(int i=0; i<num.length; ++i){
  13.                         if(num[i]==0)
  14.                                 return Math.max(0, result);
  15.                         count++;
  16.                         tmp *= num[i];
  17.                         if(count==k){
  18.                                 result = Math.max(result, tmp);
  19.                                 tmp = tmp/num[i+1-k];
  20.                                 count--;
  21.                         }
  22.                 }
  23.                 return result;
  24.         }
复制代码

补充内容 (2015-4-6 06:06):
按照绝对值排序是对的,{-3,-2,-1,0,1,2,3} --》 {0,1,-1,2,-2,-3,3},然后直接乘一个除一个就好了,类似一个k size 的window

补充内容 (2015-4-6 06:09):
貌似确实有cases没处理对,我待会改好再post
回复

使用道具 举报

🔗
siren01 2015-4-6 06:26:23 | 只看该作者
全局:
siren01 发表于 2015-4-6 06:05
额....啥都不说了,直接上代码,楼主加油!

补充内容 (2015-4-6 06:06):

up~ 有大神解释下这题解法么?
回复

使用道具 举报

🔗
 楼主| 堕落的猴子 2015-4-6 09:52:29 | 只看该作者
全局:
siren01 发表于 2015-4-6 06:26
up~ 有大神解释下这题解法么?

你这个办法,给你一个比如 -1, 2, 3, 4, 5, 6, 7, 8, 9, 10, -10000,然后k等于3,你试试看。。。

我说的办法可以说省掉了一大堆case的处理,最多移动k/2次就能找到结果了,简直不能更棒,我感觉面试官都未必想到了!
回复

使用道具 举报

🔗
 楼主| 堕落的猴子 2015-4-8 11:36:13 | 只看该作者
全局:
地里攒人品果然有用,offer已发!
回复

使用道具 举报

🔗
zcy1848 2015-4-11 17:53:44 | 只看该作者
全局:
方法太巧妙了,大赞!
回复

使用道具 举报

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

本版积分规则

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