回复: 36
跳转到指定楼层
上一主题 下一主题
收起左侧

谷歌 店面面经

全局:

2019(10-12月) 码农类General 硕士 全职@google - 内推 - 技术电面  | | WaitList | 应届毕业生
面试官口音很标准,上来就开始做题:
给一个perfect tree(如图),写一个函数:已知某个node的value,返回该node的指针。
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
容 (2019-10-10 04:34):
每个回复我都会加米!谢谢各位帮忙

本帖子中包含更多资源

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x

评分

参与人数 5大米 +7 收起 理由
Joycezhaoooo + 1 赞一个
dc761 + 1 赞一个
adayxiang + 2 很有用的信息!
1zhao + 2 很有用的信息!
hqOffer + 1 赞一个

查看全部评分


上一篇:roblox karat
下一篇:airbnb已经停止招new grad传闻
全局:
把每层的最大值存入一个数组,然后二分查找可找到层数。然后遍历这一层(还是得从root出发). 似乎期望值是O(n/2), 便宜了一点点

评分

参与人数 1大米 +1 收起 理由
Vyronas + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

推荐
digdig 2019-10-10 05:07:07 | 只看该作者
全局:
Vyronas 发表于 2019-10-10 04:56
如果已经找到了层数,可以详细说说怎么找到元素吗?因为我认为没法跳过之前层的元素直接找到这一层中的所 ...

比如找99,已知在第4层

那么从1开始,找右子树的第4层最小值(从右孩子还是一直往左走2层)80,99>80,1走右孩子到4.
在从4找找右子树的第4层最小值(从右孩子还是一直往左走1层)120,99<120,从4走到12

这样时间是O(d^2), d=O(log n)

评分

参与人数 3大米 +4 收起 理由
Vyronas + 1 给你点个赞!
showton + 2 欢迎分享你知道的情况,会给更多积分奖励!
chohan + 1 感谢!!

查看全部评分

回复

使用道具 举报

推荐
dengzeyu147 2019-10-10 04:15:05 | 只看该作者
全局:
machdebagua 发表于 2019-10-10 03:35
把每层的最大值存入一个数组,然后二分查找可找到层数。然后遍历这一层(还是得从root出发). 似乎期望值是O ...

worst case还是O n

评分

参与人数 1大米 +1 收起 理由
Vyronas + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
 楼主| Vyronas 2019-10-10 03:43:33 | 只看该作者
全局:
machdebagua 发表于 2019-10-10 03:35
把每层的最大值存入一个数组,然后二分查找可找到层数。然后遍历这一层(还是得从root出发). 似乎期望值是O ...

可是如果还是要从root出发 worst case 应该还是O(n)呀?
回复

使用道具 举报

🔗
hqOffer 2019-10-10 03:57:09 来自APP | 只看该作者
全局:
这个tree还有什么特点吗?看你发的图,每层都是递增的,以及是不是balanced tree?

评分

参与人数 1大米 +1 收起 理由
Vyronas + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

全局:
看例子是按level从上到下,从左到右排好序的perfect tree? 如果是这样的话,可以一直走右节点,直到当前节点比自己大,那就找到层数。然后在某一层用二分查找。

评分

参与人数 1大米 +1 收起 理由
Vyronas + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
 楼主| Vyronas 2019-10-10 04:02:56 | 只看该作者
全局:
MiniMinyi 发表于 2019-10-10 03:58
看例子是按level从上到下,从左到右排好序的perfect tree? 如果是这样的话,可以一直走右节点,直到当前节 ...

那如果找到了对应的层数,我如何才能获得这一层中的所有数呢?还应该是用bfs吧?那不就还得是O(n)嘛?
回复

使用道具 举报

🔗
 楼主| Vyronas 2019-10-10 04:04:36 | 只看该作者
全局:
hqOffer 发表于 2019-10-10 03:57
这个tree还有什么特点吗?看你发的图,每层都是递增的,以及是不是balanced tree?

这个tree是balance的 每层递增 而且所有的leaf node都是同层
回复

使用道具 举报

🔗
hqOffer 2019-10-10 04:11:29 来自APP | 只看该作者
全局:
Vyronas 发表于 2019/10/10 04:04:36
这个tree是balance的 每层递增 而且所有的leaf node都是同层
那这样的话可以用DFS pre order traversal 来确定value所在的层数,空间没要求的话可以直接DFS来把level order traversal存下来,这样时间是logn。好一点的话只需要走最左边的一条path就能确定所找的那个值的level了,应该就是面试官所说的helper function 。求加米( ̄▽ ̄)

评分

参与人数 1大米 +1 收起 理由
Vyronas + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
 楼主| Vyronas 2019-10-10 04:16:13 | 只看该作者
全局:
hqOffer 发表于 2019-10-10 04:11
那这样的话可以用DFS pre order traversal 来确定value所在的层数,空间没要求的话可以直接DFS来把level o ...

感谢回答!但是我还是有个问题。。你说把level order traversal存起来,这难道不需要遍历我要找的某个level以及它之前level的所有node嘛?这样为什么会是logn呀?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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