May 2009 - May 2017 论坛八周年-你的足迹,我的骄傲


一亩三分地论坛

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

一亩三分地官方iOS手机应用下载
查看: 3788|回复: 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 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
{.鐣欏璁哄潧-涓浜-涓夊垎鍦
    Iterator(Node *root){ }
    int value(){ }
    void next(){ }
. from: 1point3acres.com/bbs
}

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

求Onsite!!! 邮箱里面已经塞满了拒信。
-google 1point3acres

评分

3

查看全部评分

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

使用道具 举报

 楼主| 22691482 发表于 2014-11-8 08:39:36 | 显示全部楼层
关注一亩三分地微博:
Warald
rettyye3 发表于 2014-11-8 08:24
这题用iterative version 的 inorder? 可以自己开个stack吗 还是说用morris?

实现那个类的方法。
回复 支持 反对

使用道具 举报

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?
.1point3acres缃
祝早日拿到 ...

我自己加了个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

. Waral 鍗氬鏈夋洿澶氭枃绔,构造函数那里就是把根传进去,然后跑到最左边。 (即in-order的第一个要遍历的元素)

回复 支持 反对

使用道具 举报

averillzheng 发表于 2014-11-8 11:08:42 | 显示全部楼层
22691482 发表于 2014-11-8 10:41. 鍥磋鎴戜滑@1point 3 acres
可以参考: CC150 4.5
.鏈枃鍘熷垱鑷1point3acres璁哄潧
构造函数那里就是把根传进去,然后跑到最左边。 (即in-order的第一个要遍历的 ...

import java.util.Stack;
public class IteratorOfInOrder {       
        private TreeNode curr;. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
        private Stack<TreeNode> nodes = new Stack<TreeNode>();
       
        public IteratorOfInOrder(TreeNode root){
                TreeNode nd = root;
                while(nd != null){-google 1point3acres
                        nodes.add(nd);
                        nd = nd.left;
                }               
        }
       
        public int value(){                        . 鍥磋鎴戜滑@1point 3 acres
                return curr.val;               
        }
.1point3acres缃
        public void next(){
                if(!nodes.isEmpty()){
                        curr = nodes.pop();                       
                }
               
                if(curr != null) {
                        TreeNode nd = curr;. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
                        if(nd.right != null) {
                                nd = nd.right;
                                while(nd != null) {. From 1point 3acres bbs
                                        nodes.push(nd);
                                        nd = nd.left;
                                }
                        }                       
                }else{
                        System.out.println("reach the last node in the tree");
                }-google 1point3acres
        }
}

补充内容 (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
可以参考: CC150 4.5
. more info on 1point3acres.com
构造函数那里就是把根传进去,然后跑到最左边。 (即in-order的第一个要遍历的 ...
.1point3acres缃
当然你还可以用morris
回复 支持 反对

使用道具 举报

averillzheng 发表于 2014-11-8 11:16:01 | 显示全部楼层
我觉得还要加一个
boolean hasNext(){
}. Waral 鍗氬鏈夋洿澶氭枃绔,

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

使用道具 举报

averillzheng 发表于 2014-11-8 11:30:17 | 显示全部楼层
  1. import java.util.Stack;
  2. public class IteratorOfInOrder {       
  3.         private TreeNode curr;
  4.         private Stack<TreeNode> nodes = new Stack<TreeNode>();       
  5.         . Waral 鍗氬鏈夋洿澶氭枃绔,
  6.         public IteratorOfInOrder(TreeNode root){
  7.                 TreeNode nd = root;
  8.                 while(nd != null){
  9.                         nodes.push(nd);
  10.                         nd = nd.left;. more info on 1point3acres.com
  11.                 }               
  12.         }
  13.        
  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.                 }. visit 1point3acres.com for more.
  23.                
  24.                 if(curr != null) {
  25.                         TreeNode nd = curr;
  26.                         if(nd.right != null) {
  27.                                 nd = nd.right;. 鍥磋鎴戜滑@1point 3 acres
  28.                                 while(nd != null) {
  29.                                         nodes.push(nd);. 1point 3acres 璁哄潧
  30.                                         nd = nd.left;. from: 1point3acres.com/bbs
  31.                                 }. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  32.                         }                       
  33.                 }. more info on 1point3acres.com
  34.         }
  35.         . 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  36.         public boolean hasNext(){
  37.                 return !nodes.isEmpty();. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  38.         }
  39. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 22691482 发表于 2014-11-8 12:17:54 | 显示全部楼层
. visit 1point3acres.com for more.
不能用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楼码差不多。。

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

使用道具 举报

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
请问你电话面试后多久有的回复???

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

使用道具 举报

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

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

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

使用道具 举报

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

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

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-5-27 16:25

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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