一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

一亩三分地官方iOS手机应用下载
查看: 1795|回复: 10
收起左侧

5分钟前fb实习一面

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

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

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

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

x

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

最后一题真心不知道答得对不对,他最后说了一句没时间了,interesting solution。然后问了个问题就结束了。。。。。。

心里真是没底,求过啊。。。。。
. more info on 1point3acres.com

补充内容 (2016-11-11 10:07):. 1point3acres.com/bbs
第二题补充下,是要求从preorder list转化成BST树,return root
. 鍥磋鎴戜滑@1point 3 acres
补充内容 (2016-11-17 00:58):
一面幸运的过了,二面希望一切顺利,大家加油!

评分

1

查看全部评分

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

使用道具 举报

wangyuesong2 发表于 2016-11-11 08:43:12 | 显示全部楼层
关注一亩三分地微博:
Warald
如果是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
求职神器indeed - 在全球最大的求职网站找找适合你的工作?
回复 支持 反对

使用道具 举报

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
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. //A binary tree node
  3. class Node {
  4. . Waral 鍗氬鏈夋洿澶氭枃绔,
  5.         int data;
  6.         Node left, right;
  7. 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  8.         Node(int d) {
  9.                 data = d;
  10.                 left = right = null;. 1point 3acres 璁哄潧
  11.         }
  12. }

  13. class BinaryTree{. 鍥磋鎴戜滑@1point 3 acres
  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) {. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  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. visit 1point3acres.com for more.
  23.                 Node root = new Node(pre[lo]);
  24.                
  25.                 // If the current subarry has only one element, no need to recur
  26.                 if (lo == hi) return root;

  27.                 // Search for the first element greater than root-google 1point3acres
  28.                 int i;
  29.                 for (i = lo; i <= hi; ++i) {
  30.                         if (pre[i] > root.data) break;
  31.                 }

  32.                 // Use the index of element found in preorder to divide preorder array in
  33.                 // two parts. Left subtree and right subtree
  34.                 root.left = constructTreeUtil(pre, lo + 1, i - 1);
  35.                 root.right = constructTreeUtil(pre, i, hi); 鏉ユ簮涓浜.涓夊垎鍦拌鍧.

  36.                 return root;
  37.         }

  38.         // The main function to construct BST from given preorder traversal.
  39.         // This function mainly uses constructTreeUtil()
  40.         Node constructTree(int pre[]) {
  41.                 return constructTreeUtil(pre, 0, pre.length - 1); 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  42.         }

  43.         // A utility function to print inorder traversal of a Binary Tree
  44.         void printInorder(Node node) {
  45.                 if (node == null) return;. 1point3acres.com/bbs
  46.                 printInorder(node.left);. Waral 鍗氬鏈夋洿澶氭枃绔,
  47.                 System.out.print(node.data + " ");
  48.                 printInorder(node.right);
  49.         }. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  50. }

  51. public class test{
  52.         // Driver program to test above functions
  53.         public static void main(String[] args) {
  54.                 BinaryTree tree = new BinaryTree();
  55.                 int pre[] = new int[]{10, 5, 1, 7, 40, 50};
  56.                 Node root = tree.constructTree(pre);. 1point 3acres 璁哄潧
  57.                 System.out.println("Inorder traversal of the constructed tree is ");. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  58.                 tree.printInorder(root);
  59.         }

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

使用道具 举报

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

感觉就是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;
}.1point3acres缃
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
private static void construct(TreeNode node, int val) {
    if(val < node .val) {
        if(node.left == null) {
            node.left = new TreeNode(val);
        } 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 !
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

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

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2017-2-28 18:56

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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