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

FB 8/19 面经

🔗
leyhzm 2016-8-31 23:27:11 | 只看该作者
全局:
请问楼主 面试完后一天有收到填面试feedback的邮件嘛?
回复

使用道具 举报

🔗
mnmunknown 2016-8-31 23:55:38 | 只看该作者
全局:
zhuhai_ZFC 发表于 2016-8-31 02:05
感觉这个可以DFS解。返回值为当前子树上最深叶子节点的深度,和当前子树上的最深叶子节点的lca。

昨天晚上还和朋友讨论这题来着,思路和你的基本一样~
回复

使用道具 举报

🔗
 楼主| lvvvvv 2016-9-1 11:09:44 | 只看该作者
全局:
leyhzm 发表于 2016-8-31 23:27
请问楼主 面试完后一天有收到填面试feedback的邮件嘛?

有填, 就是问 recruiter 专不专业, 有没有人迟到之类的。

评分

参与人数 1大米 +3 收起 理由
leyhzm + 3 谢谢你的介绍!

查看全部评分

回复

使用道具 举报

🔗
leyhzm 2016-9-1 11:46:08 | 只看该作者
全局:
lvvvvv 发表于 2016-9-1 11:09
有填, 就是问 recruiter 专不专业, 有没有人迟到之类的。

谢谢!请问LZ面试有结果了嘛?大概面完多久通知结果哒~
回复

使用道具 举报

🔗
cicean 2016-9-4 14:26:15 | 只看该作者
全局:
是BST 么? 还是BT
回复

使用道具 举报

🔗
chm34 2016-9-7 11:35:13 | 只看该作者
全局:
hychin 发表于 2016-8-19 12:16
recursive 直接DFS找最底层最左和最右边的点然后求这两个点的LCA即可,iteration就变成BFS找最后一层的第一 ...

请问如何证明所有最深的叶子结点的LCA就等于最后一层的第一个和最后一个的LCA呢?我感觉直觉上是对的,但是仔细想证明好像又没有办法证明?不知道层主有没有什么好的证明方法?感谢!
回复

使用道具 举报

🔗
liurudahai 2016-9-29 02:43:23 | 只看该作者
全局:
zzh730 发表于 2016-8-23 06:19
是的,题里是多叉树,稍稍改下就好了

不对啊,LZ说RECURSION的她也写出来了,人家面试官要的是ITERATION的
回复

使用道具 举报

🔗
forestwn 2016-10-9 01:40:37 | 只看该作者
全局:
同上 这题iterative该怎么做
回复

使用道具 举报

🔗
leixiang5 2016-10-9 11:11:00 | 只看该作者
全局:
不是很懂题目。第一个例子不应该是return 1吗?  1不是最小吗
回复

使用道具 举报

🔗
minggr 2016-10-10 01:51:58 | 只看该作者
全局:
Iteration如下,就是post-order traversal的iterative版本
  1. TreeNode *LCA(TreeNode *root)
  2. {
  3.     stack<TreeNode *> stk;
  4.     unordered_map<TreeNode *, pair<TreeNode *, int>> map; //node mapped to (LCA node, height)
  5.     TreeNode *prev = NULL;

  6.     TreeNode *node = root;

  7.     while (!stk.empty() || node) {
  8.         if (node) {
  9.             stk.push(node);
  10.             node = node->left;
  11.         } else {
  12.             TreeNode *peek_node = stk.top();

  13.             if (peek_node->right && prev != peek_node->right)
  14.                 node = peek_node->right;
  15.             else {
  16.                 stk.pop();
  17.                 //下面比较乱,可以简洁一下
  18.                 if (!peek_node->left && !peek_node->right)
  19.                     map[peek_node] = make_pair(peek_node, 1);
  20.                 else if (peek_node->left && peek_node->right) {
  21.                     auto left = map[peek_node->left];
  22.                     auto right = map[peek_node->right];

  23.                     if (left.second == right.second)
  24.                         map[peek_node] = make_pair(peek_node, left.second+1);
  25.                     else if (left.second > right.second)
  26.                         map[peek_node] = make_pair(left.first, left.second+1);
  27.                     else
  28.                         map[peek_node] = make_pair(right.first, right.second+1);
  29.                 } else {
  30.                     if (peek_node->left) {
  31.                         auto left = map[peek_node->left];
  32.                         map[peek_node] = make_pair(left.first, left.second+1);
  33.                     } else {
  34.                         auto right = map[peek_node->right];
  35.                         map[peek_node] = make_pair(right.first, right.second+1);
  36.                     }
  37.                 }

  38.                 prev = peek_node;
  39.             }
  40.         }
  41.     }

  42.     return map[root].first;
  43. }
复制代码
回复

使用道具 举报

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

本版积分规则

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