c**********6 发帖数: 105 | 1 面完就发上来了
第一次面大公司啊 好鸡冻 T____T
1. project
2. 上题:
i> 如何用一个方法返回多个值
ii> 如何check一个二叉树的节点的children互为镜像
简单吧
求各种推荐啊 Google, Facebook, Microsoft, Yahoo, Linkedin, Twitter
我答的是
1. i> 新建一个class,封装多个变量;
ii> 利用java参数传递是传递引用,可以直接修改变量值(这点和c++类似),而且同时还可以返回一个值;
iii> 利用java类库中的数据结构,比如说ArrayList。
2. i> recursive算法比较简单
boolean check(TreeNode root) {
//case 1: root == null
if(root == null) return true;
//case 2: left == right == null;
if(root.left == null && root.right == null) return true;
//case 3: left,right其中一个!=null
if(root.left != null || root.right != null) return false;
//case 4: left,right都!=null
return check2(root.left, root.right);
}
boolean check2(TreeNode left, TreeNode right) {
if(left.data != right.data) return false;
else return (check(left.left, right.right)) &&
(check(left.right, right.left))
}
ii> iterative方法
case 1, 2, 3一样,
处理case 4的时候,
从root开始,用一个queue来存left的两个儿子,用一个stack来存right的两个儿子。
while(queue.size()>0 && stack.size()>0)
{
一个弹出队列,一个出栈,check相等不。
如果不等,则return false;
并把它们各自的儿子加到对应的queue或者stack中。
}
return true; |
y*******g 发帖数: 6599 | 2 镜像怎么check? 递归一个访问right/left 一个left/right? |
c**********6 发帖数: 105 | 3 是
【在 y*******g 的大作中提到】 : 镜像怎么check? 递归一个访问right/left 一个left/right?
|
l****i 发帖数: 396 | 4 第二题是什么意思 能解释一下么?
祝lz好运~~ |
c**********6 发帖数: 105 | 5 就是左右对称 像镜子照出来的一样
【在 l****i 的大作中提到】 : 第二题是什么意思 能解释一下么? : 祝lz好运~~
|
f********e 发帖数: 166 | |
C*******l 发帖数: 1198 | 7 赞
特爱这种试题
amazon在Boston招人么? |
k****n 发帖数: 369 | 8 c/c++的话就是用指针/引用了
java比较土,我一直不知道标准做法
可能声明一个专门的class比较好
【在 f********e 的大作中提到】 : 一个函数怎么返回多个值啊?
|
C*******l 发帖数: 1198 | |
c**********6 发帖数: 105 | 10 还可以用java类库的数据结构来装变量
【在 k****n 的大作中提到】 : c/c++的话就是用指针/引用了 : java比较土,我一直不知道标准做法 : 可能声明一个专门的class比较好
|
|
|
S**I 发帖数: 15689 | 11 Amazon基本上集中在西雅图,在NYC有一些,Boston貌似没有。
【在 C*******l 的大作中提到】 : 赞 : 特爱这种试题 : amazon在Boston招人么?
|
N*D 发帖数: 3641 | 12 在印度很多
【在 S**I 的大作中提到】 : Amazon基本上集中在西雅图,在NYC有一些,Boston貌似没有。
|
S**I 发帖数: 15689 | 13 FT,这版上有计划去印度工作的吗?:)
【在 N*D 的大作中提到】 : 在印度很多
|
c**********6 发帖数: 105 | 14 有这种人么
你拿到印度的offer了?
【在 S**I 的大作中提到】 : FT,这版上有计划去印度工作的吗?:)
|
f********e 发帖数: 166 | 15 我觉得楼主递归写的有问题,check 函数参数没传对
刚才写错了,改了一下
bool isMirror(treeNode* root)
{
if(!root)
return true;
else
return(isMirrorHelper(root.left,root.right));
}
bool isMirrorHelper(treeNode* l, treeNode* r)
{
if(l^r)
return false;
else if(!l)
if(l.data==r.date){
return isMirrorHelper(l.left,r.right)&&isMirrorHelper(l.right,r.left)
}
else return true;
}
希望大家指点一下,谢谢 |
c**********6 发帖数: 105 | 16 呀 是啊
这回个屁了
【在 f********e 的大作中提到】 : 我觉得楼主递归写的有问题,check 函数参数没传对 : 刚才写错了,改了一下 : bool isMirror(treeNode* root) : { : if(!root) : return true; : else : return(isMirrorHelper(root.left,root.right)); : } : bool isMirrorHelper(treeNode* l, treeNode* r)
|
f********e 发帖数: 166 | |