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

心塞的fb电面跪经

全局:

2017(1-3月) 码农类General 硕士 全职@meta - 内推 - 技术电面  | | Other | 应届毕业生

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

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

x
刚刚结束的fb电面。

约了2:00PM PST,结果楼主左等右等等到了2:10才接到了电话。。。。这十分钟简直度日如年。。

烙印打来的电话,加上国人姐姐(?)shadow。国人姐姐只在开头自我介绍了一下,然后没有说过话。 三哥自我介绍了一下说是instagram组的(国人姐姐也是),在fb22个月。似乎烙印开了电话免提还没有戴耳机,声音超级不清楚(还属于口音重的那种三哥)。后来做题的时候我说听不清他似乎才把听筒拿起来。免提的时候背景还有别人说话的声音。(难道是为了让shadow听?)

也没让我自我介绍,直接上题

利特口散失酒,小变动是给的vector里面有重复元素(感觉毫无意义啊,本来就可以重复使用)。

第二题似乎没在面经见过,给定一个超级大的排好序的vector     [1(a个),
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
,3,3,3,3,3,3,3,3,3,3]这样一个数组,
返回{1, 4}, {2, 7}, {3, 10}
其实就是不同的数字要你计数,但是要求优于O(n)......

补充内容 (2017-1-30 23:04):
排序好的数组

补充内容 (2017-2-1 21:58):
多谢三哥的不杀之恩!收到onsite了!

评分

参与人数 2大米 +35 收起 理由
avii + 5 感谢分享!
zzwcsong + 30 感谢分享!

查看全部评分


上一篇:1月20亚麻群面,没有任何消息
下一篇:亚麻 社招 OA 1/31

本帖被以下淘专辑推荐:

推荐
Zhenying 2017-2-14 15:04:40 | 只看该作者
全局:
感谢楼主分享。按照楼主的思路,第二题是不是这样做的?

  1. class Solution {
  2. public:
  3.     vector<pair<int, int>> countNums(vector<int> &nums) {
  4.         vector<pair<int, int>> res;
  5.         int st = 0;
  6.         while (st < (int)nums.size()) {
  7.             int ed = findLastOf(nums, st, nums[st]);
  8.             res.push_back( {nums[st], ed - st + 1} );
  9.             st = ed + 1;
  10.         }
  11.         return res;
  12.     }

  13. private:
  14.     int findLastOf(const vector<int> &nums, int st, int target) {
  15.         int left = st;
  16.         int diff = 1;
  17.         while (left + diff < (int)nums.size()) {
  18.             if (nums[left + diff] <= target) {
  19.                 left += diff;
  20.                 diff *= 2;
  21.             } else {
  22.                 break;
  23.             }
  24.         }

  25.         int right = min((int)nums.size() - 1, left + diff);
  26.         return binarySearch(nums, left, right, target);
  27.     }

  28.     int binarySearch(const vector<int> &nums, int left, int right, int target) {
  29.         while (left + 1 < right) {
  30.             int mid = left + (right - left) / 2;
  31.             if (nums[mid] <= target) {
  32.                 left = mid;
  33.             } else {
  34.                 right = mid;
  35.             }
  36.         }

  37.         if (nums[right] == target)
  38.             return right;
  39.         return left;
  40.     }
  41. };
复制代码
回复

使用道具 举报

全局:
第二题
  1. public class DecodeVector {

  2.     class Pair {
  3.         int c;
  4.         int count;
  5.         public Pair(int c, int count) {
  6.             this.c = c;
  7.             this.count = count;
  8.         }
  9.     }

  10.     public List<Pair> getCount(int[] arr) {
  11.         List<Pair> list = new ArrayList<>();
  12.         if (arr == null || arr.length == 0) {
  13.             return list;
  14.         }

  15.         int start = 0;
  16.         while (start < arr.length) {
  17.             int end = findLast(start, arr);
  18.             list.add(new Pair(arr[start], end - start + 1));
  19.             start = end + 1;
  20.         }

  21.         return list;
  22.     }

  23.     private int findLast(int start, int[] arr) {
  24.         int c = arr[start];
  25.         int diff = 1;
  26.         while (start + diff < arr.length && arr[start + diff] == c) {
  27.             diff <<= 1;
  28.         }
  29.         if (start + diff >= arr.length) {
  30.             return arr.length - 1;
  31.         }

  32.         int end = start + diff;
  33.         while (start + 1 < end) {
  34.             int mid = (end - start) / 2 + start;
  35.             if (arr[mid] == c) {
  36.                 start = mid;
  37.             } else {
  38.                 end = mid;
  39.             }
  40.         }
  41.         if (arr[end] == c) {
  42.             return end;
  43.         } else {
  44.             return start;
  45.         }
  46.     }


  47.     public static void main(String[] args) {
  48.         int[] arr = {1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3};
  49.         DecodeVector d = new DecodeVector();
  50.         List<Pair> res = d.getCount(arr);
  51.         for (Pair p : res) {
  52.             System.out.println(p.c + ": " + p.count);
  53.         }
  54.     }
  55. }
复制代码
回复

使用道具 举报

🔗
wtcupup 2017-1-31 11:07:14 | 只看该作者
全局:
假设abbcccddddeeee => {{1,a}, {2,b},{3,c},{4,d},{5,e}} 没看懂用binary search怎么做。。。。
回复

使用道具 举报

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

使用道具 举报

🔗
ericshape123 2017-1-31 11:22:58 | 只看该作者
全局:
第二题很像在stream里面做binary search
回复

使用道具 举报

🔗
david.fang 2017-1-31 11:42:03 | 只看该作者
全局:
同问 看不懂第二题。
回复

使用道具 举报

🔗
 楼主| LeoJY 2017-1-31 12:04:26 | 只看该作者
全局:
david.fang 发表于 2017-1-30 22:42
同问 看不懂第二题。

我补充在1l了
回复

使用道具 举报

🔗
WhatsFLAG 2017-1-31 13:42:11 | 只看该作者
全局:
感觉就是用二分查找,但是最坏情况并不能比o(n)更优化吧,至少要把每个数学都访问一边,那就是o(n)了
回复

使用道具 举报

🔗
yfl125 2017-2-4 03:03:34 | 只看该作者
全局:
楼主什么时候内推的?报下time line吧,多谢
回复

使用道具 举报

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

使用道具 举报

🔗
 楼主| LeoJY 2017-2-5 02:49:15 | 只看该作者
全局:
WhatsFLAG 发表于 2017-1-31 00:42
感觉就是用二分查找,但是最坏情况并不能比o(n)更优化吧,至少要把每个数学都访问一边,那就是o(n)了

二分的话最差应该nlgn吧? 假如所有数字都不一样,找上界下界都是lgn,然后要找n次。。。
回复

使用道具 举报

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

本版积分规则

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