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


一亩三分地论坛

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

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

FB

[复制链接] |试试Instant~ |关注本帖
fadeflame 发表于 2016-10-14 03:44:11 | 显示全部楼层 |阅读模式

2016(7-9月) 码农类 硕士 全职@Facebook - 内推 - Onsite |Otherfresh grad应届毕业生

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

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

x
给两个binary tree, 判定if tree 2 is a subtree of tree 1.
面试官表示写recursive的没有问题,六七行搞定。。。
-google 1point3acres
彼此扯淡很久,聊project和Front end神马的,对方 40% frondend, 60% backend, but the 40% part is much more frustrating...
Badger96 发表于 2016-10-14 13:57:25 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
recursion比较的话O(mn),inorder&preorder比较的话O(n),g4g上有相关文章讨论
回复 支持 1 反对 0

使用道具 举报

leixiang5 发表于 2016-10-14 03:45:45 | 显示全部楼层
关注一亩三分地微博:
Warald
....就只有一道题呀?..
回复 支持 反对

使用道具 举报

iPhD 发表于 2016-10-14 04:25:41 | 显示全部楼层
recursive是O(n2)那种解法吗?但这不是最优解呀,最优解是O(n),面试官也没说什么?
回复 支持 反对

使用道具 举报

hrl1991 发表于 2016-10-14 08:13:59 | 显示全部楼层
iPhD 发表于 2016-10-14 04:25. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
recursive是O(n2)那种解法吗?但这不是最优解呀,最优解是O(n),面试官也没说什么?

应该就是看tree2的root是不是在tree1里 如果不是bst只能recursion查tree1所有的node 应该就是o(n) n是tree1的node的个数
回复 支持 反对

使用道具 举报

iPhD 发表于 2016-10-14 08:28:51 | 显示全部楼层
hrl1991 发表于 2016-10-14 08:13
应该就是看tree2的root是不是在tree1里 如果不是bst只能recursion查tree1所有的node 应该就是o(n) n是tre ...

不是吧?应该是deep equal比较,不是看reference的,不然这题就没意义了。。。
回复 支持 反对

使用道具 举报

Raymomd 发表于 2016-10-14 08:54:35 | 显示全部楼层
    public boolean isSubtree(TreeNode a, TreeNode b) {
        if(a == null && b == null) return true;
        if(a == null || b == null) return false;
        if(a.val > b.val) {
            return isSubtree(a.left,b);
        } else if(a.val < b.val) {
            return isSubtree(a.right,b);
        } else {
            return isSubtree(a.left,b.left) && isSubtree(a.right,b.right);
        }   
    }
.1point3acres缃
如果是deep equal,大概是这样吗?如果只是看reference,就是一般的search了

补充内容 (2016-10-15 02:30):
如果是binary tree, 那判断条件就改一下,不过也可以用递归做,
回复 支持 反对

使用道具 举报

hrl1991 发表于 2016-10-14 11:37:16 | 显示全部楼层
iPhD 发表于 2016-10-14 08:28
不是吧?应该是deep equal比较,不是看reference的,不然这题就没意义了。。。

也对.. 如果不是bst的话有O(n)的解法吗 类似dp?
回复 支持 反对

使用道具 举报

hrl1991 发表于 2016-10-14 11:37:52 | 显示全部楼层
Raymomd 发表于 2016-10-14 08:54
public boolean isSubtree(TreeNode a, TreeNode b) {
        if(a == null && b == null) return tr ...

题目好像没说是bst
回复 支持 反对

使用道具 举报

minggr 发表于 2016-10-14 12:09:39 | 显示全部楼层
hrl1991 发表于 2016-10-14 08:13
应该就是看tree2的root是不是在tree1里 如果不是bst只能recursion查tree1所有的node 应该就是o(n) n是tre ...

recursion是O(n*m)

看下面这个O(n)的解法,看了才恍然大悟,自已想死活想不出来,.鏈枃鍘熷垱鑷1point3acres璁哄潧
其实就是binary tree的serialize啊,还是自已智商问题啊,脑筋就是转不过来
. 1point 3acres 璁哄潧
(F***,还是没有权限发链接,大家google下“Check if a binary tree is subtree of another binary tree”)
回复 支持 反对

使用道具 举报

zhangyanuuuuu 发表于 2016-10-14 12:17:56 | 显示全部楼层
楼上假设是binary search tree了吧,不是说binary tree而已么
回复 支持 反对

使用道具 举报

leixiang5 发表于 2016-10-14 12:39:19 | 显示全部楼层
做下Inorder and Preorder traversals...然后检查是不是substring..就好了吧..
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-7-28 12:43

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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