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

Linkedin二面面经

全局:

2014(10-12月) 码农类General 硕士 全职@linkedin - 网上海投 - 技术电面  | | Other |
第一个题是很简单的pow,第二题题目很长,加上面试官大姐的东南亚口音听得不太习惯,花了挺长时间理解题意,其实就是BFS,虽然大姐说track是对的但是最后没有写出完整的代码,感觉已跪,发出来给之后的面试攒点RP吧

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

补充内容 (2014-10-18 00:02):
还有一个条件:父子关系不能颠倒(但可以为sibling)

本帖子中包含更多资源

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

x

评分

参与人数 6大米 +57 收起 理由
MrAtoZ + 3 给你点个赞!
frozencookie + 1 很有用的信息!
whdawn + 30
lixiang.xjtu + 10 图片暴漏了qq号
herz + 3 明天二面LinkedIn T_T 多谢分享

查看全部评分


上一篇:Bloomberg Onsite
下一篇:Tableau SDET面经 电面+onsite
全局:
赞面经。第二题,可以把所有的节点先放到一个数组里面。然后把这些点连成一个N叉树。连起来的时候需要注意,因为你可以连成一个完全树,所以A[i]的N个儿子分别是i*N+1到i*N+N。这样一个个连起来就好了,连起来很方便。所以就是1.按level 遍历存到数组里面,preorder应该也可以。这样保证不违反那个sibling的条件。2.在数组里面连出一个full N tree. 主要考察的是遍历和完全树的trick

如果实在要优化的话,可以把数组变成一个queue。然后用按level遍历。如果把A[i]和N个儿子连起来之后,可以从队列里面pop出A[i]。只是一点小优化而已。

评分

参与人数 1大米 +5 收起 理由
会编程的猪先生 + 5 回答的很好!

查看全部评分

回复

使用道具 举报

全局:
  1. public class CompactTreeBuilder {

  2.     public static TreeNode compact(TreeNode root, int n) {
  3.         if (root == null || n == 0) return root;
  4.         Queue<TreeNode> q1 = new LinkedList<TreeNode>();
  5.         Queue<TreeNode> q2 = new LinkedList<TreeNode>();
  6.         q1.offer(root);
  7.         q2.offer(root);
  8.         int currLevel = 1, nextLevel = 0;
  9.         while (!q1.isEmpty()) {
  10.             TreeNode front = q1.poll();
  11.             for (TreeNode child : front.children) {
  12.                 q1.offer(child);
  13.                 q2.offer(child);
  14.                 nextLevel++;
  15.             }
  16.             if (--currLevel == 0) {
  17.                 currLevel = nextLevel;
  18.                 nextLevel = 0;
  19.             }
  20.         }
  21.         TreeNode newRoot = q2.poll();
  22.         fillChildren(newRoot, q2, n);
  23.         return newRoot;
  24.     }
  25.    
  26.     private static void fillChildren(TreeNode root, Queue<TreeNode> queue, int n) {
  27.         if (root == null || queue.isEmpty()) return;
  28.         int count = 0;
  29.         root.children = new ArrayList<TreeNode>();
  30.         while (!queue.isEmpty() && count < n) {
  31.             root.children.add(queue.poll());
  32.             count++;
  33.         }
  34.         for (TreeNode child : root.children) {
  35.             fillChildren(child, queue, n);
  36.         }
  37.     }
  38. }

  39. class TreeNode {
  40.     int value;
  41.     List<TreeNode> children;
  42.     public TreeNode(int vlaue) {
  43.         this.value = value;
  44.         children = new ArrayList<TreeNode>();
  45.     }
  46. }
复制代码
回复

使用道具 举报

推荐
 楼主| NANA1123 2014-10-17 08:32:24 | 只看该作者
全局:
不知道大神们对难的定义是什么,不过我估计我面的这么多公司的题目都没有能被称的上难的吧

因为Linkedin非常明显是有题库的,所以发发面经希望能造福下之后面试的小伙伴们

评分

参与人数 1大米 +10 收起 理由
kinslover + 10 同感……难不难这种事儿……

查看全部评分

回复

使用道具 举报

🔗
eecsece 2014-10-17 08:05:13 | 只看该作者
全局:
为啥没有权限下载。。
回复

使用道具 举报

🔗
csgtc 2014-10-17 08:19:49 | 只看该作者
全局:
就用BFS走一下咯,copy过去的tree也用一个queue存,满了就dequeue这样,这题应该不难吧
回复

使用道具 举报

🔗
wjl2525 2014-10-17 08:32:00 | 只看该作者
全局:
lz可以更新下第二题么?好像看不到哎。
回复

使用道具 举报

🔗
 楼主| NANA1123 2014-10-17 08:34:07 | 只看该作者
全局:
wjl2525 发表于 2014-10-17 08:32
lz可以更新下第二题么?好像看不到哎。

不知道为什么我没办法复制文本,所以贴的截图,没有设置权限应该能点开?
回复

使用道具 举报

🔗
wjl2525 2014-10-17 08:38:13 | 只看该作者
全局:
NANA1123 发表于 2014-10-17 08:34
不知道为什么我没办法复制文本,所以贴的截图,没有设置权限应该能点开?

不知道哎,反正我打开链接的时候提示是:抱歉,您没有权限下载本附件
回复

使用道具 举报

🔗
3652ltc 2014-10-17 13:07:35 | 只看该作者
全局:
我怎么觉得第二题很难呢。。。如果用一个queue先把树存下来,有点浪费空间,可以满了的话就添加在新树上,不过worst case都一样,因为假如是原来的每层node比transform的大的话,必须要把整个树存下来。
下面是代码,大家帮忙看一下,看看有没有什么bug。。。
  1. TreeNode *compact(TreeNode *root, int n) {
  2.         queue<TreeNode *> q;
  3.         q.push(root);
  4.         queue <TreeNode *> new_q;
  5.         TreeNode *new_root = new TreeNode(root->val)
  6.         new_q.push(new_root);
  7.         while (!root->adj.empty()) {
  8.                 q.push(root->adj.pop_front());
  9.         }
  10.         while (!q.empty()) {
  11.                 while (q.size() >= n) {
  12.                         TreeNode *new_node = new_q.pop();
  13.                         for (int i = 0; i < n; i++) {
  14.                                 TreeNode *temp = q.pop();
  15.                                 new_node->adj.push_back(new TreeNode(temp->val));
  16.                                 while (!temp->adj.empty()) {
  17.                                         q.push(temp->adj.pop_first());
  18.                                 }
  19.                         }
  20.                 }
  21.                 TreeNode *node = q.peek();
  22.                 while (!node->adj.empty()) {
  23.                         q.push(node->adj.pop_first());
  24.                 }
  25.         }
  26.         return new_root;
  27. }
复制代码
回复

使用道具 举报

🔗
wjl2525 2014-10-17 13:09:57 | 只看该作者
全局:
3652ltc 发表于 2014-10-17 13:07
我怎么觉得第二题很难呢。。。如果用一个queue先把树存下来,有点浪费空间,可以满了的话就添加在新树上,不 ...

我看不到题目,层主能麻烦你简单复述下题目要求吗?谢谢啦。
回复

使用道具 举报

🔗
shirleywwww 2014-10-17 13:33:49 | 只看该作者
全局:
NANA1123 发表于 2014-10-17 08:32
不知道大神们对难的定义是什么,不过我估计我面的这么多公司的题目都没有能被称的上难的吧

因为Linkedin ...

我怎么感觉这题挺难的。。。
回复

使用道具 举报

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

本版积分规则

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