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

Google 9/30 电面面经

全局:

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

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

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

x
45分钟电面一共两题。
第一题:高精度加法,用数组
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
父节点指向该节点的指针设为NULL。

评分

参与人数 1大米 +10 收起 理由
jacksterling + 10 亲简单介绍下自己情况,再补加剩下的

查看全部评分


上一篇:Google Phone 9/30
下一篇:谷歌电面9.28
🔗
zyoppy008 2016-10-1 12:10:20 | 只看该作者
全局:
第一题麻烦,详细说一下。。
第二题节点都删除了,用子节点做新的树根,为什么还需要将父节点指向该指针设为NULL啊,父节点不是已经删除了嘛。。。
回复

使用道具 举报

🔗
startuptech11 2016-10-1 21:28:11 | 只看该作者
全局:
能否请您给的题为例,让我们能够更好地理解?
回复

使用道具 举报

🔗
 楼主| royyjzhang 2016-10-2 07:24:34 | 只看该作者
全局:
startuptech11 发表于 2016-10-1 21:28
能否请您给的题为例,让我们能够更好地理解?

高精度加法就是使用数组存一个数,每一位作为数组的一个元素存储。比如2479=【2,4,7,9】
第二题是被删除的节点的父节点需要修改指针,这个父节点不一定被删除了。
回复

使用道具 举报

🔗
rcholic 2016-10-2 07:30:52 | 只看该作者
全局:
我k,这个第二题前几天在本版看到过啊,解法也有,看来面经针的很重要哦:


  1. public List<TreeNode> deleteNodes(int[] nodes, TreeNode root) {
  2.         List<TreeNode> roots = new ArrayList<>();

  3.         if (nodes == null || nodes.length == 0 || root == null) return roots;

  4.         HashSet<Integer> deletion = new HashSet<>(nodes.length);

  5.         for (int n : nodes) {
  6.             deletion.add(n);
  7.         }


  8.         TreeNode r = helper(root, deletion, roots);

  9.         if (r != null) {
  10.             roots.add(r); // this is a corner case when the last root is not deleted
  11.         }

  12.         return roots;
  13.     }

  14.     // return root
  15.     private TreeNode helper(TreeNode root, HashSet<Integer> hash, List<TreeNode> results) {

  16.         if (root == null) {
  17.             return root;
  18.         }

  19.         root.left = helper(root.left, hash, results);
  20.         root.right = helper(root.right, hash, results);
  21.         if (hash.contains(root.val)) {
  22.             if (root.left != null) {
  23.                 results.add(root.left);
  24.             }
  25.             if (root.right != null) {
  26.                 results.add(root.right);
  27.             }
  28.             return null; // root is deleted, return null
  29.         }

  30.         return root;
  31.     }
复制代码
回复

使用道具 举报

🔗
liurudahai 2016-10-2 15:05:50 | 只看该作者
全局:
第二题是不是就是简单的二叉树删除,貌似都没有说是BST吧
回复

使用道具 举报

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

本版积分规则

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