一亩三分地论坛

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

扫码关注一亩三分地公众号
查看: 2687|回复: 27
收起左侧

Facebook Phone Interview

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

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

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

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

x
(招工季节从7-9月到了10-12月)

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

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


class Iterator
{
    Iterator(Node *root){ }
    int value(){ }
    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. Waral 鍗氬鏈夋洿澶氭枃绔,
这题用iterative version 的 inorder? 可以自己开个stack吗 还是说用morris?
.1point3acres缃
实现那个类的方法。
回复 支持 反对

使用道具 举报

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

哦, 我的意思是能不能自己给这个class加个private的stack, 或者这Node的结构有没有parent?. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
祝早日拿到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
楼主怎么做的啊,没想明白。。。

可以参考: CC150 4.5

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

回复 支持 反对

使用道具 举报

averillzheng 发表于 2014-11-8 11:08:42 | 显示全部楼层
22691482 发表于 2014-11-8 10:41. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
可以参考: CC150 4.5

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

import java.util.Stack;. 1point 3acres 璁哄潧
public class IteratorOfInOrder {       
        private TreeNode curr;
        private Stack<TreeNode> nodes = new Stack<TreeNode>();
       
        public IteratorOfInOrder(TreeNode root){
                TreeNode nd = root;
                while(nd != null){
                        nodes.add(nd);
                        nd = nd.left;. more info on 1point3acres.com
                }               
        }
        . visit 1point3acres.com for more.
        public int value(){                       
                return curr.val;               
        }

        public void next(){
                if(!nodes.isEmpty()){
                        curr = nodes.pop();                        .鐣欏璁哄潧-涓浜-涓夊垎鍦
                }. visit 1point3acres.com for more.
               
. 鍥磋鎴戜滑@1point 3 acres                if(curr != null) {
                        TreeNode nd = curr;
                        if(nd.right != null) {
                                nd = nd.right;
                                while(nd != null) {
. Waral 鍗氬鏈夋洿澶氭枃绔,                                        nodes.push(nd);
                                        nd = nd.left;. 鍥磋鎴戜滑@1point 3 acres
                                }
                        }                       
. visit 1point3acres.com for more.                }else{
                        System.out.println("reach the last node in the tree");
                }
        }
}

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

使用道具 举报

averillzheng 发表于 2014-11-8 11:10:47 | 显示全部楼层
22691482 发表于 2014-11-8 10:41.鏈枃鍘熷垱鑷1point3acres璁哄潧
可以参考: CC150 4.5

构造函数那里就是把根传进去,然后跑到最左边。 (即in-order的第一个要遍历的 ...
.鐣欏璁哄潧-涓浜-涓夊垎鍦
当然你还可以用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 {        .1point3acres缃
  3.         private TreeNode curr;. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  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);.鏈枃鍘熷垱鑷1point3acres璁哄潧
  10.                         nd = nd.left;. visit 1point3acres.com for more.
  11.                 }               
  12.         }
  13.        
  14.         public int value(){                       
  15.                 return curr.val;               
  16.         }. 1point3acres.com/bbs
  17. . 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  18.         public void next(){
  19.                 if(!nodes.isEmpty()){-google 1point3acres
  20.                         curr = nodes.pop();                       
  21.                 }else{
  22.                         curr = null;. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  23.                 }
  24.                
  25.                 if(curr != null) {
  26.                         TreeNode nd = curr;. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  27.                         if(nd.right != null) {
  28.                                 nd = nd.right;
  29.                                 while(nd != null) {
  30.                                         nodes.push(nd);. 1point 3acres 璁哄潧
  31.                                         nd = nd.left;
  32.                                 }
  33.                         }                       
  34.                 }
  35.         }
  36.         . 1point3acres.com/bbs
  37.         public boolean hasNext(){
  38.                 return !nodes.isEmpty();
  39.         }
  40. }
复制代码
回复 支持 反对

使用道具 举报

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

不能用stack啊。。。。

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

使用道具 举报

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

使用道具 举报

 楼主| 22691482 发表于 2014-11-8 15:05:18 | 显示全部楼层
stpddream 发表于 2014-11-8 14:35
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷哈哈哈哈今天onsite被问了这个。。和10楼码差不多。。

请问你电话面试后多久有的回复???
回复 支持 反对

使用道具 举报

xingyejun 发表于 2014-11-8 15:08:04 | 显示全部楼层
祝楼主好运!问一下电面的时候可以现查资料吗?会被发现吗?. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

补充内容 (2014-11-8 15:08):
鏉ユ簮涓浜.涓夊垎鍦拌鍧. 就是上网上搜一些答案啥的
回复 支持 反对

使用道具 举报

stpddream 发表于 2014-11-8 15:17:26 | 显示全部楼层
22691482 发表于 2014-11-8 15:05
请问你电话面试后多久有的回复???
-google 1point3acres
大抵3天........
回复 支持 反对

使用道具 举报

 楼主| 22691482 发表于 2014-11-8 15:19:59 | 显示全部楼层
xingyejun 发表于 2014-11-8 15:08
祝楼主好运!问一下电面的时候可以现查资料吗?会被发现吗?
. 1point3acres.com/bbs
补充内容 (2014-11-8 15:08):

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

使用道具 举报

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

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

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-8 08:17

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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