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

fb 电面挂经

全局:

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

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

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

x
第一题: move zero
第二题: three sum


move zero要求move 的最少
three sum
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies

(0)(1)(2)(3)
print  (0, 1, 2) (0, 1, 3)

评分

参与人数 3大米 +36 收起 理由
wadephz + 3 感谢分享!
dobbin + 3 感谢分享!
夏虫不知雪花 + 30

查看全部评分


上一篇:分享脸家数据工程师面经
下一篇:4.1 的onsite面经

本帖被以下淘专辑推荐:

推荐
rcholic 2017-5-7 10:19:38 | 只看该作者
全局:
如果是减少move zeros 的次数,感觉应该是和尾部调换一下吧,下面的代码是我粗糙的写法:


  1. public static void moveZeroes(int[] A) {

  2.         int lo = 0, hi = A.length-1;
  3.         while (lo < hi) {

  4.             while (lo < hi && A[lo] != 0) { lo++; }
  5.             while (lo < hi && A[hi] == 0) { hi--; }

  6.             if (A[lo] == 0 && A[hi] != 0) {
  7.                 reverse(A, lo, hi);
  8.                 hi--;
  9.                 reverse(A, lo, hi);
  10.             }
  11.         }
  12.     }

  13.     private static void reverse(int[] A, int lo, int hi) {

  14.         while (lo < hi) {
  15.             int temp = A[lo];
  16.             A[lo] = A[hi];
  17.             A[hi] = temp;
  18.             lo++;
  19.             hi--;
  20.         }
  21.     }
复制代码
回复

使用道具 举报

推荐
JohnsonMS 2017-4-11 12:43:53 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

推荐
sean1993519 2017-4-10 03:37:50 | 只看该作者
全局:
求问如果要保留非0的顺序,是不是下面的方法比较好
  1. public void moveZeroes(int[] nums) {
  2.         int zeropos = 0;
  3.         for (int curpos = 0; curpos < nums.length; curpos++) {
  4.             if(nums[curpos] != 0 && zeropos != curpos){
  5.                 nums[zeropos++] = nums[curpos];
  6.             }else if (nums[curpos] != 0 && zeropos == curpos){
  7.                 zeropos++;
  8.             }
  9.         }
  10.         while(zeropos < nums.length){
  11.             nums[zeropos++] = 0;
  12.         }
  13.     }
复制代码
回复

使用道具 举报

🔗
scredwood 2017-4-8 03:44:52 | 只看该作者
全局:
楼主能说说咋挂了,难道是第二题?
回复

使用道具 举报

🔗
 楼主| goodgoodstudy 2017-4-8 05:33:35 | 只看该作者
全局:
scredwood 发表于 2017-4-8 03:44
楼主能说说咋挂了,难道是第二题?

整体表现的不好吧,而且也没有注意到index的问题,直接打印了排序后的index,挂完电话才想起来
回复

使用道具 举报

🔗
scredwood 2017-4-8 12:37:03 | 只看该作者
全局:
goodgoodstudy 发表于 2017-4-8 05:33
整体表现的不好吧,而且也没有注意到index的问题,直接打印了排序后的index,挂完电话才想起来

好可惜,看来不够熟练。

lz加油!
回复

使用道具 举报

🔗
Margaret601 2017-4-8 13:24:07 | 只看该作者
全局:
print  (0, 1, 2) (0, 1, 3) 那岂不是(0,2,3)也行。。。还是有难度

昨天刚写了3sum 看到lz这个面经感觉自己还是白写了 遇到这种follow up。。。

祝福LZ 也许fb出的是好消息呢~ 加油
回复

使用道具 举报

🔗
say543 2017-4-8 13:38:47 | 只看该作者
全局:
lz move zero 那堤能说说怎做吗? 一直没找到answer...
回复

使用道具 举报

🔗
sean1993519 2017-4-8 15:05:29 | 只看该作者
全局:
哇,这个3sum竟然是打印index,请问是不是需要建个table先把之前的index存一下,然后对应元素去找呢
回复

使用道具 举报

全局:
sean1993519 发表于 2017-4-8 15:05
哇,这个3sum竟然是打印index,请问是不是需要建个table先把之前的index存一下,然后对应元素去找呢{:4_112 ...

想什么呢,直接新建一个array存排好序的索引号就行了
回复

使用道具 举报

全局:
面试官也是,应该提醒一下楼主的
这么挂人多没意思
回复

使用道具 举报

🔗
sean1993519 2017-4-9 03:56:46 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

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

本版积分规则

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