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

狗家新鲜fulltime店面,刚面完

全局:

2019(10-12月) 码农类General 硕士 全职@google - 内推 - 技术电面  | | Other | 应届毕业生

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

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

x
刚面试完就来发一下,面试官是白人小哥,刚来狗家两年,一开始不是很热情,心里一凉。但是题目不难,做着做着就熟络起来,一直在交流。最后他说You did a great job, be more confident,和地里大神们比我实力比较弱,但是也积极尝试了。题目的话是一道经典 get nexlargest in BST,确实不太记得了,corner cases想了很多才弄出来,分数设置很低,希望对大家有帮助。

您好!
本帖隐藏的内容需要积分高于 130 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 130 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies

我的代码也在里面,大家加油!求加米!

评分

参与人数 5大米 +15 收起 理由
吃撑的烤串儿 + 3 很有用的信息!
章鱼章鱼 + 3 给你点个赞!
lukuang + 3 很有用的信息!
苏小暖 + 3 给你点个赞!
bc2615 + 3 给你点个赞!

查看全部评分


上一篇:新鲜的骨骼店面
下一篇:第一次Onsite经历 - 亚麻
推荐
lindali2010 2018-11-29 04:07:23 | 只看该作者
全局:
感谢lz分享,祝早日拿到offer。
下面是我用C#完成的code,好像不必用到parent
        private static TreeNode GetNextBSTNode(TreeNode node)
        {
            if (node == null || node.right == null) return null;
            TreeNode cur = node.right;
            Stack<TreeNode> stk = new Stack<TreeNode>();
            while (stk.Count > 0 || cur != null)
            {
                if (cur != null)
                {
                    stk.Push(cur);
                    cur = cur.left;
                }
                else return stk.Pop();
            }

            return null;
        }
回复

使用道具 举报

推荐
dengzeyu147 2018-11-28 07:28:57 | 只看该作者
全局:
写了一下 请楼主指点
  1. public Node getNextLargest(Node node ){
  2.         if(node.right == null){
  3.                 node = node.right;
  4.                 while(node.left !=null){
  5.                         node = node.left;
  6.                 }
  7.                 return node;
  8.         }
  9.         while(node.parent != null){
  10.                 if(node.parent.left == node){
  11.                                 return node.parent;
  12.                         }
  13.                 node = node.parent;
  14.                         }
  15.                 }
  16. }
复制代码

补充内容 (2018-11-28 07:29):
return null
回复

使用道具 举报

推荐
stellari 2018-11-29 07:32:24 | 只看该作者
全局:
lindali2010 发表于 2018-11-29 07:01
多谢,不过在BST里面若没有node.right 不就是没有比当前node值更大的TreeNode,需要return null吗?

不是。因为比node大的节点并不一定在node右子树中,也可能是node的某个ancestor(只要node在这个ancestor的左子树中)。所以如果node没有右child时,你需要用parent指针不停上溯,直至第一次发现node是在某个ancestor的左子树中为止。如果上溯到root也没有找到这样的ancestor,才能说没有比node更大的值。

回复

使用道具 举报

🔗
yanl3277881 2018-11-28 04:29:14 | 只看该作者
全局:
排版有点乱,是输出第二大的value就可以了?
回复

使用道具 举报

🔗
bc2615 2018-11-28 05:57:46 | 只看该作者
全局:
请问node的定义是给定的吗? 另外已知node, 找它右孩子的最左孩子不就可以了吗? 为啥还要看 parent
回复

使用道具 举报

🔗
 楼主| 一只肥青虫 2018-11-28 06:52:05 | 只看该作者
全局:
yanl3277881 发表于 2018-11-28 04:29
排版有点乱,是输出第二大的value就可以了?

嗯嗯,输出比当前节点大的第一个value,不好意思。顺序是数据结构->例子->代码。
回复

使用道具 举报

🔗
 楼主| 一只肥青虫 2018-11-28 06:52:51 | 只看该作者
全局:
bc2615 发表于 2018-11-28 05:57
请问node的定义是给定的吗? 另外已知node, 找它右孩子的最左孩子不就可以了吗? 为啥还要看 parent

因为node在不同的位置,情况不一样,可以拿纸写个三层的树,考虑不同的case。
回复

使用道具 举报

🔗
dengzeyu147 2018-11-28 07:15:57 | 只看该作者
全局:
bc2615 发表于 2018-11-28 05:57
请问node的定义是给定的吗? 另外已知node, 找它右孩子的最左孩子不就可以了吗? 为啥还要看 parent

没有右孩子的情况
回复

使用道具 举报

🔗
bc2615 2018-11-28 08:06:39 | 只看该作者
全局:
一只肥青虫 发表于 2018-11-27 18:52
因为node在不同的位置,情况不一样,可以拿纸写个三层的树,考虑不同的case。

明白了!!
回复

使用道具 举报

🔗
bc2615 2018-11-28 08:08:14 | 只看该作者
全局:
dengzeyu147 发表于 2018-11-27 19:28
写了一下 请楼主指点
[mw_shl_code=java,true]public Node getNextLargest(Node node ){
        if(node.right  ...

感觉是对的 学习了
回复

使用道具 举报

🔗
 楼主| 一只肥青虫 2018-11-28 08:21:12 | 只看该作者
全局:
dengzeyu147 发表于 2018-11-28 07:28
写了一下 请楼主指点
[mw_shl_code=java,true]public Node getNextLargest(Node node ){
        if(node.right  ...

第一个if的条件应该是不为空吧
回复

使用道具 举报

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

本版积分规则

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