一亩三分地论坛

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

5分钟前fb实习一面

[复制链接] |试试Instant~ |关注本帖
Cathy667 发表于 2016-11-11 07:22:42 | 显示全部楼层 |阅读模式

2016(10-12月) 码农类 博士 实习@Facebook - 内推 - 技术电面 |Otherfresh grad应届毕业生

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

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

x
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
一个印度小哥大约晚了15分钟打来了电话,一开始问我要不要换时间,因为他晚了,我说都可以,结果就继续面了。
开始他做了一下自我介绍,说了一大堆他的项目,他也问了我自己做的项目,大约15分钟。
接着开始做题:. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
1. first bad version
口头run test case
2. 有点像LC 297,但是是BST,而且给出了一个preorder的list,没有#标识符表示空节点;之后我提出来如果没有标识符符好像没法知道是不是空节点......脑子抽了一下,应该用BST的性质;之后提示说可以每个节点加一个parent......

最后一题真心不知道答得对不对,他最后说了一句没时间了,interesting solution。然后问了个问题就结束了。。。。。。
. Waral 鍗氬鏈夋洿澶氭枃绔,
心里真是没底,求过啊。。。。。


补充内容 (2016-11-11 10:07):
第二题补充下,是要求从preorder list转化成BST树,return root

补充内容 (2016-11-17 00:58):
一面幸运的过了,二面希望一切顺利,大家加油!

评分

1

查看全部评分

wtcupup 发表于 2016-11-11 07:55:50 | 显示全部楼层
感觉第二题是这个链接里的高票答案 http://stackoverflow.com/questions/4611555/how-to-serialize-binary-tree
回复 支持 反对

使用道具 举报

wangyuesong2 发表于 2016-11-11 08:43:12 | 显示全部楼层
如果是BST的话,给了一个preorder的sequence是不是可以根据这个题https://leetcode.com/problems/verify-preorder-sequence-in-binary-search-tree/ leetcode255来做啊。
回复 支持 反对

使用道具 举报

Badger96 发表于 2016-11-11 09:54:11 | 显示全部楼层
请问楼主第二题要求出什么呢?是LC 255吗?
回复 支持 反对

使用道具 举报

 楼主| Cathy667 发表于 2016-11-11 10:08:45 | 显示全部楼层
Badger96 发表于 2016-11-11 09:54
请问楼主第二题要求出什么呢?是LC 255吗?

还原成BST树,return root
回复 支持 反对

使用道具 举报

xueqi 发表于 2016-11-11 12:02:02 来自手机 | 显示全部楼层
Preorder的话,如果是aLR的话,all in L is less than a, all in R is bigger than a. Just recursive build left and right with L and R. Right?
回复 支持 反对

使用道具 举报

 楼主| Cathy667 发表于 2016-11-11 12:07:45 | 显示全部楼层
xueqi 发表于 2016-11-11 12:02. 1point3acres.com/bbs
Preorder的话,如果是aLR的话,all in L is less than a, all in R is bigger than a. Just recursive buil ...

我是这么想的,写的也差不多是这样,不知道写没写对。。。。
回复 支持 反对

使用道具 举报

e5399014 发表于 2016-11-11 23:58:26 | 显示全部楼层
  1. package test;
  2. . Waral 鍗氬鏈夋洿澶氭枃绔,
  3. //A binary tree node
  4. class Node { 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  5. . visit 1point3acres.com for more.
  6.         int data;
  7.         Node left, right;

  8.         Node(int d) {
  9.                 data = d;
  10.                 left = right = null;
  11.         } 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  12. }

  13. class BinaryTree{
  14.        
  15.         // A recursive function to construct Full from pre[]. preIndex is used
  16.         // to keep track of index in pre[].
  17.         Node constructTreeUtil(int pre[], int lo, int hi) {. visit 1point3acres.com for more.
  18.                
  19.                 // Base case
  20.                 if (lo > hi) return null;

  21.                 // The first node in preorder traversal is root. So take the node at
  22.                 // preIndex from pre[] and make it root, and increment preIndex
  23.                 Node root = new Node(pre[lo]);
  24.                 . 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  25.                 // If the current subarry has only one element, no need to recur. more info on 1point3acres.com
  26.                 if (lo == hi) return root;
  27. . Waral 鍗氬鏈夋洿澶氭枃绔,
  28.                 // Search for the first element greater than root
  29.                 int i;
  30.                 for (i = lo; i <= hi; ++i) {
  31.                         if (pre[i] > root.data) break;
  32.                 }

  33.                 // Use the index of element found in preorder to divide preorder array in
  34.                 // two parts. Left subtree and right subtree
  35.                 root.left = constructTreeUtil(pre, lo + 1, i - 1);
  36.                 root.right = constructTreeUtil(pre, i, hi);

  37.                 return root;
  38.         }. more info on 1point3acres.com

  39.         // The main function to construct BST from given preorder traversal.. 1point 3acres 璁哄潧
  40.         // This function mainly uses constructTreeUtil()
  41.         Node constructTree(int pre[]) {
  42.                 return constructTreeUtil(pre, 0, pre.length - 1);. 1point3acres.com/bbs
  43.         }

  44.         // A utility function to print inorder traversal of a Binary Tree
  45.         void printInorder(Node node) {
  46.                 if (node == null) return;
  47.                 printInorder(node.left);
  48.                 System.out.print(node.data + " ");
  49.                 printInorder(node.right);
  50.         }
  51. }

  52. public class test{
  53.         // Driver program to test above functions. 鍥磋鎴戜滑@1point 3 acres
  54.         public static void main(String[] args) {
  55.                 BinaryTree tree = new BinaryTree();
  56.                 int pre[] = new int[]{10, 5, 1, 7, 40, 50};
  57.                 Node root = tree.constructTree(pre);
  58.                 System.out.println("Inorder traversal of the constructed tree is ");
  59.                 tree.printInorder(root);
  60.         }. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴

  61. }
复制代码
回复 支持 反对

使用道具 举报

鼓頔娜夫 发表于 2016-11-17 00:38:15 | 显示全部楼层
Cathy667 发表于 2016-11-11 12:07. from: 1point3acres.com/bbs
我是这么想的,写的也差不多是这样,不知道写没写对。。。。

感觉就是LC106的变种,只是对于BST来说,preorder就足够唯一的确定一个tree了
回复 支持 反对

使用道具 举报

eNdlessm1 发表于 2016-12-26 14:03:03 | 显示全部楼层
这题的解法应该是这样的:

private static TreeNode contructTree(int[] nums) {
    TreeNode root = new TreeNode(nums[0]);
    for (int i = 1; i<nums.length; i++) {
        construct(root, nums[i]);
    }

    return root;
}
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
private static void construct(TreeNode node, int val) {
    if(val < node .val) {
        if(node.left == null) {
            node.left = new TreeNode(val);. from: 1point3acres.com/bbs
        } else construct(node.left, val);. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
    }
    if (val > node.val) {
        if (node.right == null) {
            node.right = new TreeNode(val);
        } else construct(node.right, val);
    }
}
回复 支持 反对

使用道具 举报

看穿 发表于 2017-2-15 21:48:22 | 显示全部楼层
eNdlessm1 发表于 2016-12-26 14:03
这题的解法应该是这样的:

private static TreeNode contructTree(int[] nums) {

elegant code !
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-12-14 12:40

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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