V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
nowcoder
V2EX  ›  程序员

Homebrew 的作者被 Google 拒啦,因为他不会翻转二叉树

  nowcoder · Jun 11, 2015 · 25158 views
This topic created in 3978 days ago, the information mentioned may be changed or developed.

Homebrew 的作者被 Google 拒啦,因为他不会翻转二叉树,然后作者在twitter上开骂啦,然后很多公司开始抢人了。

你来挑战一下翻转二叉树吧
http://www.nowcoder.com/books/coding-interviews/564f4c26aa584921bc75623e48ca3011

非递归版本的答案如下:
http://www.nowcoder.com/questionTerminal/bcffd7e8a0d4402c99773bed98690bb7

89 replies    2021-12-09 19:54:22 +08:00
huanghuaxin
    1
huanghuaxin  
   Jun 11, 2015
我也做不出来…
yasonyyx
    2
yasonyyx  
   Jun 11, 2015
不要忘了抄送给 Max Howell
phoenixlzx
    3
phoenixlzx  
   Jun 11, 2015   ❤️ 6
Google 的算法很牛的,例如你在 Google+ 上发 po 文,带有一个 tag 叫做 #Google你个SB

它会自动帮你打上一个 tag 叫做 #Google你个大SB
nowcoder
    4
nowcoder  
OP
   Jun 11, 2015
@phoenixlzx ......
magicdawn
    5
magicdawn  
   Jun 11, 2015
原来翻转就是左右换一下~
gooffer
    6
gooffer  
   Jun 11, 2015
递归很容易实现啊
leopku
    7
leopku  
   Jun 11, 2015
`on a whiteboard` 这是要手写的节奏啊,不刷题库我也写不粗来
gengrui
    8
gengrui  
   Jun 11, 2015
我当初面Facebook的Android position的时候,code test 是做一个二进制加法器。果然挂了...
wavingclear
    9
wavingclear  
   Jun 11, 2015
@magicdawn 刚看到这个新闻就想上下翻么这怎么翻……
v2gba
    10
v2gba  
   Jun 11, 2015
为啥又开了一帖子, 而且还置顶了.
chenshaoju
    11
chenshaoju  
   Jun 11, 2015
@MrGba2z 这是商业推广……
v2gba
    12
v2gba  
   Jun 11, 2015
@chenshaoju
噢, 学渣自动忽略了最后两段 现在才看到
Xingbao
    13
Xingbao  
   Jun 11, 2015
就一悲剧,话说谷歌的面试官不认识他么
laotaitai
    14
laotaitai  
   Jun 11, 2015 via Android
brew作者只写了这个有名的工具么?若是,不会翻转二叉树悲剧,也是正常的,面试Google,你所有的成就自动忽略掉,只考你真实技能。
xuyl
    15
xuyl  
   Jun 11, 2015
二叉树也算是基本的数据结构了,但我们做web开发的根本就用不到了。
patrickwtl
    16
patrickwtl  
   Jun 11, 2015
这个题不难吧
hooluupog
    17
hooluupog  
   Jun 11, 2015   ❤️ 1
显然Homebrew 的作者是去裸面了,事先也没准备。当初python之父不是都面了10轮么。。
ChiangDi
    18
ChiangDi  
   Jun 11, 2015
为何被置顶了?
ChiangDi
    19
ChiangDi  
   Jun 11, 2015
懂了原来是牛课网的广告
KingHL
    20
KingHL  
   Jun 11, 2015
搞定
nbndco
    21
nbndco  
   Jun 11, 2015   ❤️ 1
@laotaitai 反转二叉树是真实技能也是醉了,仿佛有人真正在实际工作中用过一样。mxcl水平如何看看github就知道了,反正我觉得比只会反转二叉树的显然厉害太多。虽然反转二叉树不难,但这门奇怪的“真实技能”基本也就是应届生最精通了。
shiny
    22
shiny  
PRO
   Jun 11, 2015   ❤️ 1
这个广告打得好。大音希声,大象无形,真正的好广告看不出来是一个广告。
anoymoux
    23
anoymoux  
   Jun 11, 2015
baidu亮了。。刚打fanzhuan就反转了-_-
limuxy
    24
limuxy  
   Jun 11, 2015   ❤️ 2
众☜看!这是一个二叉树!
yxaaa123
    25
yxaaa123  
   Jun 11, 2015
@limuxy 森 <- 这是啥?
x4
    26
x4  
   Jun 11, 2015 via Android
@yxaaa123 晶←_←
x4
    27
x4  
   Jun 11, 2015 via Android
@anoymoux 试着打布谷鸟
benjiam
    28
benjiam  
   Jun 11, 2015   ❤️ 1
说明 也许牛人会因此进不了google, 但是绝对不会有水货进去。
cszjutstar
    29
cszjutstar  
   Jun 11, 2015
我也不会二叉树
cancan
    30
cancan  
   Jun 11, 2015
好广告。
rainday
    31
rainday  
   Jun 11, 2015
这题不难啊
nowcoder
    32
nowcoder  
OP
   Jun 11, 2015
@Xingbao 故意为难的吧
AntiGameZ
    33
AntiGameZ  
   Jun 11, 2015
真心好广告
lilydjwg
    34
lilydjwg  
   Jun 11, 2015
链接在哪里?我要去围观。
lilydjwg
    35
lilydjwg  
   Jun 11, 2015
另外吐槽一下这个 nowcoder.com 的代码编辑器里代码的字体竟然不等宽!
nowcoder
    36
nowcoder  
OP
   Jun 11, 2015
@lilydjwg 多谢反馈。马上找工程师大哥改改改
sumuye
    37
sumuye  
   Jun 11, 2015
哈哈也是倒霉
20150517
    38
20150517  
   Jun 11, 2015 via Android
这题不难的,其实进fb,google谁不背些题?我去年电面fb,还有题准备过的
cyshi
    39
cyshi  
   Jun 11, 2015
答案正确:恭喜!您提交的程序通过了所有的测试用例

=====

不过个人考察算法题的时候 一般都会让应聘者随意google
Qiangyuan
    40
Qiangyuan  
   Jun 11, 2015
图片里这是什么软件?Twitter?没见过,求解
ostholz
    41
ostholz  
   Jun 11, 2015   ❤️ 1
有一个回: brew install btree-invert
哈哈
yiplee
    42
yiplee  
   Jun 11, 2015
@hooluupog 其实他去面试前有准备,他自己在 Twitter 上面说的。
yiplee
    43
yiplee  
   Jun 11, 2015
@Qiangyuan 是 Twitter
bin456789
    44
bin456789  
   Jun 11, 2015
1417收藏,真励志
jhdxr
    45
jhdxr  
   Jun 11, 2015
@nowcoder 排行居然混着c/c++和java。。。
fszaer
    47
fszaer  
   Jun 11, 2015
@phoenixlzx 呵呵呵呵
nbndco
    48
nbndco  
   Jun 11, 2015   ❤️ 11
顺带贴个解答吧,我觉得只有这个答案是理解了什么是数据结构的,问出这个问题的人感觉没有理解什么是数据结构。

https://news.ycombinator.com/item?id=9697008

It can't be just mirroring, because there's the obvious zero-op solution because "left" and "right" don't actually mean anything except when you're visualizing it for humans:
struct NormalNode {
int value;
struct NormalNode *left;
struct NormalNode *right;
};

struct ReversedNode {
int value;
struct ReversedNode *right;
struct ReversedNode *left;
};

struct ReversedNode *reverseTree(struct NormalNode *root) {
return (struct ReversedNode *)root;
}
There. Now left is right and right is left.
21grams
    49
21grams  
   Jun 11, 2015
哈哈,楼上的这个太牛了。
heqichang
    50
heqichang  
   Jun 11, 2015
@nbndco 我x, 这是个好想法
xhjsxw
    51
xhjsxw  
   Jun 11, 2015
刷一遍newcoder就会了
201314
    52
201314  
   Jun 11, 2015 via Android
要想会这个题,去牛客刷题哦!!
raincious
    53
raincious  
   Jun 11, 2015
@nbndco

最牛的答案出现了,直接改名……
cdwind
    54
cdwind  
PRO
   Jun 11, 2015   ❤️ 1
这写不出来太不应该了吧,写个递归半分钟的事情。。。

class Solution {
public:
void Mirror(TreeNode *pRoot) {
if (!pRoot)
return;
TreeNode *tmp = pRoot->right;
pRoot->right = pRoot->left;
pRoot->left = tmp;
Mirror(pRoot->right);
Mirror(pRoot->left);
}
};

答案正确:恭喜!您提交的程序通过了所有的测试用例
cdwind
    55
cdwind  
PRO
   Jun 11, 2015
@cdwind 要求非递归啊。。。
cdwind
    56
cdwind  
PRO
   Jun 11, 2015
@cdwind
用堆栈模拟下递归..

class Solution {
private:
stack<TreeNode*> mStack;
public:
void Mirror(TreeNode *pRoot) {
mStack.push(pRoot);
while (!mStack.empty()){
TreeNode *rpRoot = mStack.top();
mStack.pop();
if (!rpRoot)
continue;
TreeNode *tmp = rpRoot->right;
rpRoot->right = rpRoot->left;
rpRoot->left = tmp;
mStack.push(rpRoot->right);
mStack.push(rpRoot->left);
}
}
};
initialdp
    57
initialdp  
   Jun 11, 2015
把Homebrew卖给google,然后雇佣那个家伙让他天天在白板上反转。
ehs2013
    58
ehs2013  
   Jun 11, 2015
@initialdp 那我还是去用 MacPorts 吧……
lsgbhp
    59
lsgbhp  
   Jun 11, 2015   ❤️ 1
没人说Max Howell面的是iOS的职位么
fulvaz
    60
fulvaz  
   Jun 11, 2015   ❤️ 1
会不会根本不是关键问题

只是因为筛选简单

比如说,好多企业要求985毕业学生,然而他的岗位其实普通大专生就可以了,那为什么还要设置985要求?
设门槛嘛,985有垃圾,大专也有大师,但是很明显985里面更找到靠谱的人几率更大,节约筛选时间.

同理,现在很多公司都有一个恶习就是考算法,都是在设置门槛,很明显,会算法的人里面找到靠谱的几率也很大,看清楚,--> 是几率大 <-----,还是有坑
nowcoder
    61
nowcoder  
OP
   Jun 11, 2015
@fulvaz 几率大就够了。企业也要节省时间成本 的
ryd994
    62
ryd994  
   Jun 11, 2015
@nbndco 我差点想到………
然而学渣只是想到了用子类,没想到可以直接cast……
jadetang
    63
jadetang  
   Jun 11, 2015
@20150517 你怎么过简历筛选的
20150517
    64
20150517  
   Jun 11, 2015 via Android
@jadetang 他们linkedin上找到我的,说第一轮电面,就是他们美国电话过来,你通着电话 ,然后在一个网站上让你写程序,他们同时能看到
refresh
    65
refresh  
   Jun 11, 2015   ❤️ 1
一姑娘想找一个有钱人做来老公(企业找优秀的程序员),设置了很多科学的筛选方法(某些算法或学历等)来筛选出有钱人。有一天,来了一个亿万富翁,虽然他拿出来了存款(已有成就,而且很优秀),但他很遗憾没通过姑娘的测试。
姑娘说,通过我这套测试的,是百万富翁的机率肯定要大一些,没通过的,肯定是穷屌丝。

结论:思维定势和官僚主义是要命的。
ant_sz
    66
ant_sz  
   Jun 11, 2015
感觉只有像这种牛人面到的算法题才会这么简单。。。。即使没专门训练过应该也可以做的出来吧。。。

普通没有其他资历的人遇到的题比这难多了。。。。
spencerqiu
    67
spencerqiu  
   Jun 11, 2015
@Livid

这两位。感受到了楼主的恶意啊~

@xhjsxw @201314
ceclinux
    68
ceclinux  
   Jun 11, 2015
这个是故意的把……
jadetang
    69
jadetang  
   Jun 11, 2015
@20150517 这么说来linkedin还是挺重要的。看来你是牛人啊。能被主动找到
lilydjwg
    70
lilydjwg  
   Jun 11, 2015   ❤️ 1
@20150517 我讨厌背题,浪费时间浪费生命。CloudFlare 也讨厌背题的: https://blog.cloudflare.com/cloudflare-interview-questions/
paulagent
    71
paulagent  
   Jun 11, 2015
@refresh 举的例子不恰当。公司招聘n人,n可以是几十上百上千上万,一个女人要找这些老公吗? 要是找这些老公还是要根据条件来判断。
sdysj
    72
sdysj  
   Jun 11, 2015
homebrew 这种项目都是社区支持上来的,技术含量也不高,居然还能说是他自己写的,人品问题。
zonghua
    73
zonghua  
   Jun 11, 2015
@fulvaz 感觉像我这样的只能去要饭了,根本跨不了没有这道坎。
robot9
    74
robot9  
   Jun 12, 2015
@gengrui 我最喜欢的问题 = = 加法完了之后做乘法 再有空做除法
gengrui
    75
gengrui  
   Jun 12, 2015
@robot9 唉,当时是做phone screen interview, 只给15分钟,确实比较紧张
liuzuo
    76
liuzuo  
   Jun 12, 2015 via Android
@gengrui 二进制全加器?
breeswish
    77
breeswish  
   Jun 12, 2015   ❤️ 1
谷歌偏爱算法方面厉害的,对于工程方面科技树茂盛的不是很感冒
breeswish
    78
breeswish  
   Jun 12, 2015
话说原作者 twitter 上说 “to min-max the tree, ascending to descending.”,说的是颠倒一个堆而不是交换左右 ?
TimLang
    79
TimLang  
   Jun 12, 2015
递归很容易解,迭代的话要用栈,递归解法参考: http://yuntui.org/2015/06/Invert_binary-tree/
txl263
    80
txl263  
   Jun 12, 2015
原来是牛课网的广告
pinxue
    81
pinxue  
   Jun 12, 2015   ❤️ 1
这哥们诚心的吧,没道理写不出来的。我自己以前进上海贝尔时纸上用 C 写过对分查找,进思科时白板上用 Java 写过大数加法,其实心态放平也没啥的。

另外,Google 的招聘流程就是这样子,先要过算法和 HR,然后才会到用人部门。这个对于公司还是有好处的,网红程序员就不容易混进去,国内不少公司扩张期招聘都会引进一堆眼高手低的,就是面试流程太宽松了。
windyboy
    82
windyboy  
   Jun 12, 2015
如果怀疑homebrew的作者算法不合格,我想意义就不大的
面试我想只是一个基本的功夫
对于有能力的程序员,算法可以在实际工作中再去搞
当然感觉这哥们也是自视比较高
进不去双方都是损失
lilydjwg
    83
lilydjwg  
   Jun 12, 2015
@pinxue 我当年就没有算法耶。
pinxue
    84
pinxue  
   Jun 12, 2015
@lilydjwg 这是显摆顔值来了?
konakona
    85
konakona  
   Jun 12, 2015
然后作者狠心将Google IP群组Ban了...永生不得brew..
lilydjwg
    86
lilydjwg  
   Jun 13, 2015
@konakona 并且所有使用 homebrew 的用户会被询问要不要将默认搜索引擎换成 DuckDuckGo :-D
nikoukou
    87
nikoukou  
   Jun 13, 2015
Just turn the whiteboard upside-down.23333333
SmiteChow
    88
SmiteChow  
   Jun 16, 2015
囧,生产和科研的差别
LINAICAI
    89
LINAICAI  
   Dec 9, 2021
可能他不是科班出身?哈哈哈
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   792 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 196ms · UTC 20:15 · PVG 04:15 · LAX 13:15 · JFK 16:15
♥ Do have faith in what you're doing.