《数据科学面试40+真题讲解》,K神本年度最后一次开课


一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推你去多家公司面试
Airbnb 数据科学职位
in analytics and inference
天天打游戏、照样领工资,
你要不要来?
把贵司招聘信息放这里
查看: 3205|回复: 3
收起左侧

whatsapp intern面经

[复制链接] |试试Instant~ |关注本帖
seckcoder 发表于 2015-3-23 14:43:25 | 显示全部楼层 |阅读模式

2015(1-3月) 码农类 硕士 实习@Facebookwhatsapp - 校园招聘会 - 技术电面 Onsite |Fail

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

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

x
电面一轮,onsite两轮。最后悲剧了。
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
电面:
1. 把一个sorted list转成balanced binary search tree
2. 把sorted list转成complete binary search tree


onsite第一轮:
主要讨论project。然后要实现Trie的插入。由于我说我会Haskell, 然后被要求用Haskell实现。由于之前没在白板上写过code,写得很乱。最后问hr,也说到我的code不够clean,感觉应该是因为这个悲剧了。

onsite第二轮:. from: 1point3acres.com/bbs
也是主要讨论project。然后问了几个关于链表的题:
. from: 1point3acres.com/bbs
1. 给一个linked list, 求长度
2. 实现在linked list中append一个节点
3. 实现在linked list中prepend一个节点
4. 利用上面的函数,实现将一个数组变成linked list.
5. 要求提高4的性能。4已经是O(n), 所以要提高性能只能并发。我先是用fortress写了一个实现。利用Fortress的并发特性,可以达到O(lgn)。然后被要求不用Fortress。我又用openmp给了一个多线程实现。

评分

2

查看全部评分

本帖被以下淘专辑推荐:

eric108 发表于 2015-3-23 22:13:59 | 显示全部楼层
周三面whatsapp的fulltime,楼主这问题也太难了点吧,看来whatsapp还挺高冷的 估计没戏了
回复 支持 反对

使用道具 举报

然姐Carol 发表于 2015-3-25 06:06:01 | 显示全部楼层
实习这么个面法也是蛮拼的
回复 支持 反对

使用道具 举报

joseph5wu 发表于 2016-2-7 16:07:55 | 显示全部楼层
那个sorted list to complete BST 参考了一下前面的balanced BST的递归做法,跑了一下inorder/level order/isBST检查了一下应该没什么问题:
  1. public class Solution {
  2.     private ListNode node;. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

  3.     private int getDividePos(int start, int end) {
  4.         int m = end - start + 1;. 1point 3acres 璁哄潧
  5.         int height = (int)Math.ceil(Math.log(m + 1) / Math.log(2));
  6.         if(3 * Math.pow(2, height - 2) - 1 >= m) {
  7.             return end - (int) Math.pow(2, height - 2) + 1;
  8.         }
  9.         else {. Waral 鍗氬鏈夋洿澶氭枃绔,
  10.             return start + (int) Math.pow(2, height - 1) - 1;
  11.         }
  12.     }

  13.     private int getLength(ListNode node) {
  14.         int length = 0;
  15.         while(node != null) {
  16.             length++;
  17.             node = node.next;
  18.         }. 1point3acres.com/bbs
  19.         return length;
  20.     }
  21. .1point3acres缃
  22.     public TreeNode convert(ListNode head) {
  23.         if(head == null) {
  24.             return null;
  25.         }

  26.         this.node = head;. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  27.         int length = getLength(head);
  28.         return convert(0, length - 1);
  29.     }

  30.     private TreeNode convert(int start, int end) {
  31.         if(start > end) {
  32.             return null;
  33.         }

  34.         int rootIndex = getDividePos(start, end);
  35.         TreeNode left = convert(start, rootIndex - 1);
  36.         TreeNode root = new TreeNode(node.value);. Waral 鍗氬鏈夋洿澶氭枃绔,
  37.         node = node.next;
  38.         TreeNode right = convert(rootIndex + 1, end);
  39.         root.left = left;
  40.         root.right = right;
  41.         return root;
  42.     }.鏈枃鍘熷垱鑷1point3acres璁哄潧
  43. }
复制代码
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-11-23 07:39

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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