推荐:数据科学课程和书籍清单以及培训讲座


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

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

Facebook Phone Interview

[复制链接] |试试Instant~ |关注本帖
22691482 发表于 2014-11-8 07:31:14 | 显示全部楼层 |阅读模式

2014(10-12月) 码农类 硕士 全职@Facebook - 内推 - 技术电面 |Other

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

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

x
(招工季节从7-9月到了10-12月). 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴

一小时前FB电话面试,扯了20分钟简历才说:想要写点代码吗? 。。。

Iterator for in-order traversal of binary tree.  开始以为是iterative traverse in-order binary tree...还暗喜了一会。。


class Iterator. visit 1point3acres.com for more.
{
    Iterator(Node *root){ }
    int value(){ }.鏈枃鍘熷垱鑷1point3acres璁哄潧
    void next(){ }

}

很久都没有理解题目,,后面边理解边写边改的。写完面试官说有个Bug,我找了半天说没找到,给个提示。。还好他说是他看错了。。

求Onsite!!! 邮箱里面已经塞满了拒信。

评分

3

查看全部评分

rettyye3 发表于 2014-11-8 08:24:46 | 显示全部楼层
这题用iterative version 的 inorder? 可以自己开个stack吗 还是说用morris?
回复 支持 反对

使用道具 举报

 楼主| 22691482 发表于 2014-11-8 08:39:36 | 显示全部楼层
rettyye3 发表于 2014-11-8 08:24
这题用iterative version 的 inorder? 可以自己开个stack吗 还是说用morris?
. visit 1point3acres.com for more.
实现那个类的方法。
回复 支持 反对

使用道具 举报

rettyye3 发表于 2014-11-8 08:57:33 | 显示全部楼层
22691482 发表于 2014-11-8 08:39
实现那个类的方法。

哦, 我的意思是能不能自己给这个class加个private的stack, 或者这Node的结构有没有parent?. 1point 3acres 璁哄潧

祝早日拿到onsite!
回复 支持 反对

使用道具 举报

rengokantai 发表于 2014-11-8 09:57:21 | 显示全部楼层
邮箱里面已经塞满了拒信。。。。。。跟我太像了。楼主加油啊
回复 支持 反对

使用道具 举报

hno3 发表于 2014-11-8 10:01:11 | 显示全部楼层
楼主怎么做的啊,没想明白。。。
回复 支持 反对

使用道具 举报

 楼主| 22691482 发表于 2014-11-8 10:38:42 | 显示全部楼层
rettyye3 发表于 2014-11-8 08:57
哦, 我的意思是能不能自己给这个class加个private的stack, 或者这Node的结构有没有parent?

祝早日拿到 ...

我自己加了个private Node* next;

next就是CC150里面那个做法。

这个题主要是没见过,半天没搞清楚要干嘛。
回复 支持 反对

使用道具 举报

 楼主| 22691482 发表于 2014-11-8 10:39:19 | 显示全部楼层
rengokantai 发表于 2014-11-8 09:57
.鐣欏璁哄潧-涓浜-涓夊垎鍦邮箱里面已经塞满了拒信。。。。。。跟我太像了。楼主加油啊

加油加油。。!!!
回复 支持 反对

使用道具 举报

 楼主| 22691482 发表于 2014-11-8 10:41:10 | 显示全部楼层
hno3 发表于 2014-11-8 10:01. more info on 1point3acres.com
楼主怎么做的啊,没想明白。。。

可以参考: CC150 4.5
. 鍥磋鎴戜滑@1point 3 acres
构造函数那里就是把根传进去,然后跑到最左边。 (即in-order的第一个要遍历的元素)
. From 1point 3acres bbs
回复 支持 反对

使用道具 举报

averillzheng 发表于 2014-11-8 11:08:42 | 显示全部楼层
22691482 发表于 2014-11-8 10:41
. 鍥磋鎴戜滑@1point 3 acres可以参考: CC150 4.5

构造函数那里就是把根传进去,然后跑到最左边。 (即in-order的第一个要遍历的 ...

import java.util.Stack;
public class IteratorOfInOrder {       
        private TreeNode curr;
        private Stack<TreeNode> nodes = new Stack<TreeNode>();
        .1point3acres缃
        public IteratorOfInOrder(TreeNode root){
                TreeNode nd = root;.1point3acres缃
                while(nd != null){
                        nodes.add(nd);
                        nd = nd.left;
                }               
        } 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
        . visit 1point3acres.com for more.
        public int value(){                       
                return curr.val;                . more info on 1point3acres.com
        }

        public void next(){
                if(!nodes.isEmpty()){
                        curr = nodes.pop();                       
                }
               
                if(curr != null) {.鐣欏璁哄潧-涓浜-涓夊垎鍦
                        TreeNode nd = curr;.鐣欏璁哄潧-涓浜-涓夊垎鍦
                        if(nd.right != null) {.鏈枃鍘熷垱鑷1point3acres璁哄潧
                                nd = nd.right;. From 1point 3acres bbs
                                while(nd != null) {
                                        nodes.push(nd);
                                        nd = nd.left;
                                }
                        }                       
                }else{
                        System.out.println("reach the last node in the tree");
. From 1point 3acres bbs                }
        }
}. visit 1point3acres.com for more.

补充内容 (2014-11-8 11:29):
上面的code有一点点的小bug,在next函数的第一个if后掉了else clause,. 1point3acres.com/bbs
更正的code 在后面。 我加了一个hasNext()的函数。因为他给定的next函数返回的是void,如果没有hasNext函数,这个iterator不太好用
回复 支持 反对

使用道具 举报

averillzheng 发表于 2014-11-8 11:10:47 | 显示全部楼层
22691482 发表于 2014-11-8 10:41
可以参考: CC150 4.5. more info on 1point3acres.com
-google 1point3acres
构造函数那里就是把根传进去,然后跑到最左边。 (即in-order的第一个要遍历的 ...
. Waral 鍗氬鏈夋洿澶氭枃绔,
当然你还可以用morris
回复 支持 反对

使用道具 举报

averillzheng 发表于 2014-11-8 11:16:01 | 显示全部楼层
我觉得还要加一个
boolean hasNext(){
}

不然真心不好用
回复 支持 反对

使用道具 举报

averillzheng 发表于 2014-11-8 11:30:17 | 显示全部楼层
  1. import java.util.Stack;
  2. public class IteratorOfInOrder {       
  3.         private TreeNode curr;. visit 1point3acres.com for more.
  4.         private Stack<TreeNode> nodes = new Stack<TreeNode>();       
  5.        
  6.         public IteratorOfInOrder(TreeNode root){
  7.                 TreeNode nd = root;.鐣欏璁哄潧-涓浜-涓夊垎鍦
  8.                 while(nd != null){
  9.                         nodes.push(nd);
  10.                         nd = nd.left;
  11.                 }                . visit 1point3acres.com for more.
  12.         }
  13.         -google 1point3acres
  14.         public int value(){                       
  15.                 return curr.val;               
  16.         }

  17.         public void next(){
  18.                 if(!nodes.isEmpty()){
  19.                         curr = nodes.pop();                       
  20.                 }else{
  21.                         curr = null;
  22.                 }
  23.                
  24.                 if(curr != null) {
  25.                         TreeNode nd = curr;
  26.                         if(nd.right != null) {
  27.                                 nd = nd.right; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  28.                                 while(nd != null) {
  29.                                         nodes.push(nd);. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  30.                                         nd = nd.left;
  31.                                 }. Waral 鍗氬鏈夋洿澶氭枃绔,
  32.                         }                       
  33.                 }-google 1point3acres
  34.         }
  35.         . Waral 鍗氬鏈夋洿澶氭枃绔,
  36.         public boolean hasNext(){
  37.                 return !nodes.isEmpty();
  38.         }. Waral 鍗氬鏈夋洿澶氭枃绔,
  39. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 22691482 发表于 2014-11-8 12:17:54 | 显示全部楼层

不能用stack啊。。。。

构造函数: 传进来root,把成员函数next指到inorder的第一个。
value(): return next->val;
next(): 如果有右孩子,返回右孩子的leftMost孩子。
                不然往上找父亲,直到父亲是某个爷爷的左孩子,那么爷爷就是next。
回复 支持 反对

使用道具 举报

stpddream 发表于 2014-11-8 14:35:59 | 显示全部楼层
哈哈哈哈今天onsite被问了这个。。和10楼码差不多。。
回复 支持 反对

使用道具 举报

 楼主| 22691482 发表于 2014-11-8 15:05:18 | 显示全部楼层
stpddream 发表于 2014-11-8 14:35
哈哈哈哈今天onsite被问了这个。。和10楼码差不多。。

. 鍥磋鎴戜滑@1point 3 acres请问你电话面试后多久有的回复???
回复 支持 反对

使用道具 举报

xingyejun 发表于 2014-11-8 15:08:04 | 显示全部楼层
祝楼主好运!问一下电面的时候可以现查资料吗?会被发现吗?
.鏈枃鍘熷垱鑷1point3acres璁哄潧
补充内容 (2014-11-8 15:08):
就是上网上搜一些答案啥的
回复 支持 反对

使用道具 举报

stpddream 发表于 2014-11-8 15:17:26 | 显示全部楼层
22691482 发表于 2014-11-8 15:05. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
请问你电话面试后多久有的回复???

大抵3天........
回复 支持 反对

使用道具 举报

 楼主| 22691482 发表于 2014-11-8 15:19:59 | 显示全部楼层
xingyejun 发表于 2014-11-8 15:08
祝楼主好运!问一下电面的时候可以现查资料吗?会被发现吗?

补充内容 (2014-11-8 15:08):

我那个next就是找刷CC150的时候自己实现的代码。。。不过要和面试官保持交流。。所以颇有难度。。
回复 支持 反对

使用道具 举报

 楼主| 22691482 发表于 2014-11-8 15:20:37 | 显示全部楼层

Onsite据说一天就回复了。。祝好运啊!
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-8-18 17:08

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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