[职场感言] 工作一年了,聊聊三件事

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
E轮2.5亿美元融资
K12教育独角兽一起作业
北京-诚聘人工智能/教育/大数据岗
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
码农求职神器Triplebyte:
不用海投
内推多家公司面试
把贵司招聘信息放这里
查看: 4730|回复: 23
收起左侧

报个facebook intern offer一枚

[复制链接] |试试Instant~ |关注本帖
honeyBear142857 发表于 2016-4-4 02:23:38 | 显示全部楼层 |阅读模式

2016(4-6月) 码农类General 博士 实习@Facebook - 网上海投 - 技术电面  | Pass | fresh grad应届毕业生

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

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

x
上周五拿到的facebook发来的offer,下面把面试经验总结一下:. 一亩-三分-地,独家发布
第一面:
时间:2016.2.26
第一题是sort 3 colors变形,就是给一堆tasks,有一个API getPriority可以获得每一个task ID的优先级(low, medium, high),
要求对所有task进行排序,使得low tasks在最左边,medium的在中间,high的在最右边。
第二题是 print a linked list reversely,递归和非递归两个版本都要写出来。

两道题都要写test cases

第二面:
时间:2016.3.4
第一题是 divide two integers,没有corner case的要求,即不用考虑最大整数和最小整数的情况。
第二题是 implement read(char* buf, int n) 用已知的read4K函数。这道题由于没做过leetcode原题,写的时候出现了bug,
虽然后面知道怎么写了,但是时间已到。这轮的面试官给了个follow,所以才有了第三面的加面。. 1point3acres

第三面:
时间:2016.3.25
第一道题是找出离origin最近的k个points,每一个point都是坐标形式 (x, y)。 由于我是用C++编程,中间被问到了建立最大的
operator overloading的问题。
第二道题是 add binary digits,写的时候也出现了bug,交流之后迅速改了过来。

Note:技术店面个人认为交流是最重要的,当然题目写出来是前提。. from: 1point3acres
. From 1point 3acres bbs
team match了一周,这周二team match interview,面试的问题是个system design,之前也有帖子说machine learning相关的组
都会问到system design。个人觉得选组很重要,因为涉及到return offer以及是否对相关projects真的感兴趣。

楼主当时选组的时候也是一头雾水,大家如果有team match相关的问题留言给我哈。


评分

3

查看全部评分

wtcupup 发表于 2016-4-4 05:39:44 | 显示全部楼层
那道sort color变形 , 有没有规定能不能用 std:: swap ?
回复 支持 反对

使用道具 举报

 楼主| honeyBear142857 发表于 2016-4-4 05:43:11 | 显示全部楼层
wtcupup 发表于 2016-4-4 05:39
那道sort color变形 , 有没有规定能不能用 std:: swap ?

可以用swap,但是要尽量减少swap的次数
回复 支持 反对

使用道具 举报

sealove999 发表于 2016-4-15 13:31:14 | 显示全部楼层
第一面,第一题
  1. public class Solution {
  2.   int getPriority(int id) {
  3.     return id % 3;
  4.   }

  5.   public void sort(int[] arr) {.留学论坛-一亩-三分地
  6.     int l_w = 0; // writer
  7.     int m_w = 0;
  8.     for (int r = 0; r < arr.length; r++) { // reader. 1point3acres
  9.       int p = getPriority(arr[r]);
  10.       if (p == 0) { // low
  11.         int tmp = arr[r];
  12.         arr[r] = arr[m_w];. 牛人云集,一亩三分地
  13.         arr[m_w] = arr[l_w];
  14.         arr[l_w] = tmp;
  15.         l_w++;. From 1point 3acres bbs
  16.         m_w++;. from: 1point3acres
  17.       } else if (p == 1) { // medium
  18.         int tmp = arr[r];-google 1point3acres
  19.         arr[r] = arr[m_w];
  20.         arr[m_w] = tmp;
  21.         m_w++;
  22.       } else if (p == 2) { // high. 牛人云集,一亩三分地
  23.         // nop
  24.       }. Waral 博客有更多文章,
  25.     }
  26.   }

  27.   public static void main(String[] args) {
  28.     Solution s = new Solution();. 围观我们@1point 3 acres
  29.     List<Integer> list = IntStream.range(0, 100).boxed().collect(Collectors.toList());
  30.     Collections.shuffle(list);
  31.     int[] arr = list.stream().mapToInt(x -> x).toArray();
  32.     System.out.println(Arrays.toString(Arrays.stream(arr).map(x -> s.getPriority(x)).toArray()));. more info on 1point3acres
  33.     s.sort(arr);
  34.     System.out.println(Arrays.toString(Arrays.stream(arr).map(x -> s.getPriority(x)).toArray()));
  35.   }
  36. }
复制代码
回复 支持 反对

使用道具 举报

sealove999 发表于 2016-4-15 13:39:50 | 显示全部楼层
第一面,第二题 来源一亩.三分地论坛.
  1. public class Solution {
  2.   ListNode reverse(ListNode head) {
  3.     ListNode myhead = new ListNode(-1);
  4.     while (head != null) {. 一亩-三分-地,独家发布
  5.       ListNode ln = head;
  6.       head = head.next;

  7.       ln.next = myhead.next;
  8.       myhead.next = ln;
  9.     }
  10.     return myhead.next;
  11.   }

  12.   public void printALinkedListReversely1(ListNode head) {. 一亩-三分-地,独家发布
  13.     if (head != null) {
  14.       ListNode ln = reverse(head);
  15.       for (ListNode p = ln; p != null; p = p.next) {
  16.         System.out.println(p.val);
  17.       }. Waral 博客有更多文章,
  18.       reverse(ln);. from: 1point3acres
  19.     }
  20.   }

  21.   public void printALinkedListReversely2(ListNode head) {
  22.     if (head != null) {
  23.       printALinkedListReversely2(head.next);
  24.       System.out.println(head.val);
  25.     }
  26.   }

  27.   public static void main(String[] args) {
  28.     Solution s = new Solution();
  29.     ListNode ln1 = new ListNode(1);
  30.     ListNode ln2 = new ListNode(2);. From 1point 3acres bbs
  31.     ListNode ln3 = new ListNode(3);
  32.     ListNode ln4 = new ListNode(4);
  33.     ListNode ln5 = new ListNode(5);
    . from: 1point3acres
  34.     ln1.next = ln2;
  35.     ln2.next = ln3;
  36.     ln3.next = ln4;
  37.     ln4.next = ln5;
  38.     s.printALinkedListReversely1(ln1);
  39.     System.out.println();
  40.     s.printALinkedListReversely2(ln1);
  41.   }.留学论坛-一亩-三分地
  42. }
复制代码
回复 支持 反对

使用道具 举报

sealove999 发表于 2016-4-15 14:21:52 | 显示全部楼层
第三面,第一题
  1. public class Solution {
  2.   public List<Point> kn1(List<Point> pts, int k) {
  3.     Queue<Point> maxheap = 来源一亩.三分地论坛.
  4.         new PriorityQueue<>((p1, p2) -> (p2.x * p2.x + p2.y * p2.y) - (p1.x * p1.x + p1.y * p1.y));
  5.     for (Point p : pts) { // nlgk
  6.       maxheap.offer(p);. From 1point 3acres bbs
  7.       if (maxheap.size() > k) {
  8.         maxheap.poll();
  9.       }
  10.     }-google 1point3acres
  11.     return maxheap.stream().collect(Collectors.toList()); 来源一亩.三分地论坛.
  12.   }

  13.   public List<Point> kn2(List<Point> pts, int k) {
  14.     Queue<Point> minheap =
  15.         new PriorityQueue<>((p1, p2) -> (p1.x * p1.x + p1.y * p1.y) - (p2.x * p2.x + p2.y * p2.y));
  16.     minheap.addAll(pts);
  17.     List<Point> ret = new ArrayList<>();
  18.     for (int i = 0; i < k; i++) { // klgn
  19.       ret.add(minheap.poll());
  20.     }. 牛人云集,一亩三分地
  21.     return ret;
  22.   }

  23.   int comp(Point pt1, Point pt2) {
  24.     return pt1.x * pt1.x + pt1.y * pt1.y - pt2.x * pt2.x - pt2.y * pt2.y;
  25.   }

  26.   int qs(List<Point> arr, int low, int high) {.1point3acres网
  27.     Point p = arr.get(high); // high -> p
  28.     while (low < high) {. Waral 博客有更多文章,
  29.       while (low < high && comp(arr.get(low), p) <= 0) { // <=
  30.         low++;
  31.       }
  32.       arr.set(high, arr.get(low)); // low -> high
  33.       while (low < high && comp(p, arr.get(high)) <= 0) { // <=
  34.         high--; 来源一亩.三分地论坛.
  35.       }
  36.       arr.set(low, arr.get(high)); // high -> low
  37.     }
  38.     arr.set(high, p); // p -> high
  39.     return high;
  40.   }
  41. . 一亩-三分-地,独家发布
  42.   public List<Point> kn3(List<Point> pts, int k) {
  43.     int low = 0;
  44.     int high = pts.size() - 1;
  45.     while (low < high) {
  46.       int mid = qs(pts, low, high);
  47.       if (mid < k) {. from: 1point3acres
  48.         low = mid + 1;. 围观我们@1point 3 acres
  49.       } else if (k < mid) {. 留学申请论坛-一亩三分地
  50.         high = mid - 1;
  51.       } else { // k == mid
  52.         return pts.subList(0, k);
  53.       }
  54.     }. from: 1point3acres
  55.     return pts.subList(0, k); // low < high.留学论坛-一亩-三分地
  56.   }

  57.   public static void main(String[] args) {
  58.     Solution s = new Solution();
  59.     List<Point> pts = new ArrayList<>();
  60.     pts.add(new Point(0, 1));
  61.     pts.add(new Point(1, 1));
  62.     pts.add(new Point(2, 2));
  63.     pts.add(new Point(0, 2));
  64.     pts.add(new Point(1, 1));. 一亩-三分-地,独家发布
  65.     System.out.println(s.kn1(pts, 3));
  66.     System.out.println(s.kn2(pts, 3));
  67.     System.out.println(s.kn3(pts, 3));
  68.   }
  69. }
复制代码
回复 支持 反对

使用道具 举报

sealove999 发表于 2016-4-15 14:30:47 | 显示全部楼层

改了一下
  1. public class Solution {
  2.   public List<Point> kn1(List<Point> pts, int k) {
  3.     Queue<Point> maxheap =
  4.         new PriorityQueue<>((p1, p2) -> (p2.x * p2.x + p2.y * p2.y) - (p1.x * p1.x + p1.y * p1.y));
  5.     for (Point p : pts) { // nlgk. 一亩-三分-地,独家发布
  6.       maxheap.offer(p); 来源一亩.三分地论坛.
  7.       if (maxheap.size() > k) {
  8.         maxheap.poll();
  9.       }
  10.     }
  11.     return maxheap.stream().collect(Collectors.toList());
  12.   }

  13.   public List<Point> kn2(List<Point> pts, int k) {
  14.     Queue<Point> minheap =
  15.         new PriorityQueue<>((p1, p2) -> (p1.x * p1.x + p1.y * p1.y) - (p2.x * p2.x + p2.y * p2.y));
  16.     minheap.addAll(pts);
  17.     List<Point> ret = new ArrayList<>();
  18.     for (int i = 0; i < k; i++) { // klgn
  19.       ret.add(minheap.poll());
  20.     }
  21.     return ret;
  22.   }

  23.   int comp(Point pt1, Point pt2) {
  24.     return pt1.x * pt1.x + pt1.y * pt1.y - pt2.x * pt2.x - pt2.y * pt2.y;
  25.   }

  26.   int qs(List<Point> arr, int low, int high) {
  27.     Point p = arr.get(high); // high -> p
  28.     while (low < high) {
  29.       while (low < high && comp(arr.get(low), p) <= 0) { // <=. 1point3acres
  30.         low++;
  31.       }
  32.       arr.set(high, arr.get(low)); // low -> high
  33.       while (low < high && comp(p, arr.get(high)) <= 0) { // <=.1point3acres网
  34.         high--;
  35.       }
  36.       arr.set(low, arr.get(high)); // high -> low
  37.     }
  38.     arr.set(high, p); // p -> high
  39.     return high;
  40.   }-google 1point3acres

  41.   public List<Point> kn3(List<Point> pts, int k) {
  42.     int low = 0;
  43.     int high = pts.size() - 1;
  44.     while (low < high) {
  45.       int mid = qs(pts, low, high);
  46.       if (mid < k) {
  47.         low = mid + 1; 来源一亩.三分地论坛.
  48.       } else if (k < mid) {
  49.         high = mid - 1;. From 1point 3acres bbs
  50.       } else { // k == mid. From 1point 3acres bbs
  51.         return pts.subList(0, k);. 1point 3acres 论坛
  52.       }
  53.     }. From 1point 3acres bbs
  54.     return pts.subList(0, k); // low < high. more info on 1point3acres
  55.   }. 牛人云集,一亩三分地

  56.   void recursion(List<Point> pts, int k, int start, int end) {
  57.     int mid = qs(pts, start, end);
  58.     if (mid < k) {
  59.       recursion(pts, k, mid + 1, end);
  60.     } else if (k < mid) {
  61.       recursion(pts, k, start, mid - 1);
  62.     }
  63.   }

  64.   public List<Point> kn3_(List<Point> pts, int k) {
  65.     recursion(pts, k, 0, pts.size() - 1);
  66.     return pts.subList(0, k);
  67.   }

  68.   public static void main(String[] args) {. from: 1point3acres
  69.     Solution s = new Solution();
  70.     List<Point> pts = new ArrayList<>();
  71.     pts.add(new Point(0, 1));
  72.     pts.add(new Point(1, 1));
  73.     pts.add(new Point(2, 2));
  74.     pts.add(new Point(0, 2));.留学论坛-一亩-三分地
  75.     pts.add(new Point(1, 1));
  76.     Collections.shuffle(pts);
  77.     System.out.println(s.kn1(pts, 3));
  78.     Collections.shuffle(pts);
  79.     System.out.println(s.kn2(pts, 3));
  80.     Collections.shuffle(pts);
  81.     System.out.println(s.kn3(pts, 3));
  82.     Collections.shuffle(pts);
  83.     System.out.println(s.kn3_(pts, 3));
  84.   }
  85. }
复制代码
回复 支持 反对

使用道具 举报

carthus 发表于 2016-4-15 14:33:47 | 显示全部楼层
fb的summer intern面到这么晚啊
Mobile Apps Category (English)728x90
回复 支持 反对

使用道具 举报

sealove999 发表于 2016-4-15 14:34:49 | 显示全部楼层
求问system design是啥题目?
回复 支持 反对

使用道具 举报

sealove999 发表于 2016-4-15 14:41:27 | 显示全部楼层
第三问,第二题
  1. public class Solution {
  2.   public String addBinaryDigits(String s1, String s2) {
  3.     StringBuilder sb = new StringBuilder();. From 1point 3acres bbs
  4.     int i = 1;.1point3acres网
  5.     int carry = 0; 来源一亩.三分地论坛.
  6.     while (s1.length() - i >= 0 && s2.length() - i >= 0) {
  7.       int b1 = s1.charAt(s1.length() - i) - '0';
  8.       int b2 = s2.charAt(s2.length() - i) - '0';
  9.       int sum = b1 + b2 + carry;-google 1point3acres
  10.       sb.insert(0, sum % 2);
  11.       carry = sum / 2;
  12.       i++;
  13.     }
  14.     while (s1.length() - i >= 0) { 来源一亩.三分地论坛.
  15.       int b1 = s1.charAt(s1.length() - i) - '0';
    来源一亩.三分地论坛.
  16.       int sum = b1 + carry;
    . more info on 1point3acres
  17.       sb.insert(0, sum % 2);
  18.       carry = sum / 2;
  19.       i++;
  20.     }
  21.     while (s2.length() - i >= 0) {
  22.       int b2 = s2.charAt(s2.length() - i) - '0';
  23.       int sum = b2 + carry;
  24.       sb.insert(0, sum % 2);. From 1point 3acres bbs
  25.       carry = sum / 2;.本文原创自1point3acres论坛
  26.       i++;
  27.     }
  28.     if (carry > 0) {
  29.       sb.insert(0, carry);
  30.     }. 围观我们@1point 3 acres
  31.     return sb.toString();
  32.   }

  33.   public static void main(String[] args) {
  34.     Solution s = new Solution();
  35.     System.out.println(s.addBinaryDigits("1010111000011100110", "1111001000000110000100"));
  36.   }.1point3acres网
  37. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| honeyBear142857 发表于 2016-4-16 06:38:09 | 显示全部楼层
carthus 发表于 2016-4-15 14:33
fb的summer intern面到这么晚啊

我面的是PhD intern,master intern应该早就面完啦!听说PhD intern现在还有人在面试
回复 支持 反对

使用道具 举报

 楼主| honeyBear142857 发表于 2016-4-16 06:38:57 | 显示全部楼层
sealove999 发表于 2016-4-15 14:34
求问system design是啥题目?

做一个用户推荐系统,recommender system
回复 支持 反对

使用道具 举报

sealove999 发表于 2016-4-16 13:17:33 | 显示全部楼层
honeyBear142857 发表于 2016-4-16 06:38
做一个用户推荐系统,recommender system

求教楼主how to做
根据什么推荐呢。,。是图里面的连接还是发表的帖子的内容近似度还是其他神马
回复 支持 反对

使用道具 举报

 楼主| honeyBear142857 发表于 2016-4-19 07:23:27 | 显示全部楼层
sealove999 发表于 2016-4-16 13:17
求教楼主how to做
根据什么推荐呢。,。是图里面的连接还是发表的帖子的内容近似度还是其他神马

给facebook用户推荐 video
回复 支持 反对

使用道具 举报

xiaohui5319 发表于 2016-4-20 04:20:18 | 显示全部楼层
请问楼主team match面完后等了多久来的offer?
回复 支持 反对

使用道具 举报

 楼主| honeyBear142857 发表于 2016-4-20 10:02:35 | 显示全部楼层
xiaohui5319 发表于 2016-4-20 04:20 来源一亩.三分地论坛.
请问楼主team match面完后等了多久来的offer?

我当时等了两天哈
回复 支持 反对

使用道具 举报

arkkevin 发表于 2017-12-6 16:11:17 | 显示全部楼层
请问楼主match到的是什么组?楼主的背景是ML相关的吗?
回复 支持 反对

使用道具 举报

get_bits 发表于 2017-12-6 16:26:09 来自手机 | 显示全部楼层
马克一下 谢谢楼主
回复 支持 反对

使用道具 举报

arkkevin 发表于 2017-12-8 06:01:14 | 显示全部楼层
请问楼主team match大概是什么样的system design问题?谢谢!
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2018-5-24 10:37

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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