123
返回列表 发新帖
楼主: sherry900105
跳转到指定楼层
上一主题 下一主题
收起左侧

Google电面面经+给了两轮电面?

🔗
c__jay 2015-2-26 15:43:08 | 只看该作者
全局:
sherry900105 发表于 2015-2-26 01:09
我觉得tostring会降低印象分的吧。。。= =我也不太清楚。。。但是觉得比较讨巧的办法就是取余。。。

如果要加逗号的话应该用toCharArray然后从尾开始每三位加逗号吧

另外第二题应该可以log(n),root没有right subtree的话就返回left subtree的最大值,用一个反方向的in order. root 有left subtree的话也是做过反方向的in order 不过返回的是第二大的值。因为in order从边缘开始所以基本上直接探索到leaf就完了,如果是balanced的话就是o(log n)最差o(n)

补充内容 (2015-2-26 15:45):
第一题看错了,确实应该取余,而且先放到char[]里面比较有效率

补充内容 (2015-2-26 15:49):
实质上第二天也说复制了,直接reverse in order返回的第二个值就是了,不管什么情况
回复

使用道具 举报

🔗
tanis 2015-2-26 16:09:57 | 只看该作者
全局:
Google是1-2轮电面,4-5轮onsite。
回复

使用道具 举报

🔗
tyr034 2015-3-16 22:54:15 | 只看该作者
全局:
请问楼主 如果第二题 没有right subtree怎么办?
有没有代码分享下?
回复

使用道具 举报

🔗
 楼主| sherry900105 2015-3-16 22:59:56 | 只看该作者
全局:
tyr034 发表于 2015-3-16 09:54
请问楼主 如果第二题 没有right subtree怎么办?
有没有代码分享下?

面试的时候他没跟我提right subtree的事情。。做判断就好了吧。。0 0反正他只要求返回倒数第二大的。。
回复

使用道具 举报

🔗
robinho364 2015-3-17 00:48:16 | 只看该作者
全局:
为毛感觉google的面试题,比国内bat的还简单……
回复

使用道具 举报

🔗
averillzheng 2015-3-21 11:11:43 | 只看该作者
全局:
第二题:
  1. public TreeNode secondLargest(TreeNode root) {
  2.                 if(root == null)        return null;

  3.                 Stack<TreeNode> path = new Stack<TreeNode>();
  4.                 TreeNode curr = root, second = null;
  5.                 while(curr != null) {
  6.                         path.push(curr);
  7.                         curr = curr.right;
  8.                 }

  9.                 curr = path.pop(); //path is not empty since root is in stack               
  10.                 if(curr.left != null) {
  11.                         curr = curr.left;
  12.                         while(curr.right != null) {
  13.                                 curr = curr.right;
  14.                         }

  15.                         second = curr;
  16.                 } else {
  17.                         second = (path.empty()) ? null : path.pop();
  18.                 }

  19.                 return second;               
  20.         }
复制代码

补充内容 (2015-3-21 11:12):
可以优化成常数空间。我懒得写了。
回复

使用道具 举报

🔗
woshiee123 2015-4-22 03:54:26 | 只看该作者
全局:
sherry900105 发表于 2015-2-26 01:09
我觉得tostring会降低印象分的吧。。。= =我也不太清楚。。。但是觉得比较讨巧的办法就是取余。。。

弱问取余的做法是什么
回复

使用道具 举报

🔗
ucichuck 2015-4-22 15:03:43 | 只看该作者
全局:
写了下这两道题,应该是对的:

第一题:

public class Solution {
    public String convertNumber(int num){
        boolean isPositive = true;
        if (num < 0){
            isPositive = false;
            num = -num;
        }

        if (num == 0){
            return "0";
        }
        String res = "";
        int count = 0;
        while(num > 0){
            int mod = num%10;
            num = num/10;
            res = mod + res;
            count ++;
            if (count == 3 && num > 0){
                res = ","+res;
                count = 0;
            }
        }

        return isPositive ? res.toString() : "-"+res.toString();
    }
}


public class Main {
    public static void main(String[] args){
        Solution solt = new Solution();
        System.out.println(solt.convertNumber(100));
        System.out.println(solt.convertNumber(1001));
        System.out.println(solt.convertNumber(21));
        System.out.println(solt.convertNumber(1000000021));
        System.out.println(solt.convertNumber(-10021));
    }
}


第二题:

public class Solution {
    public TreeNode getSecondLargest(TreeNode root){
        if (root == null || (root.left == null && root.right == null)) return null;

        TreeNode cur = root; TreeNode pre = null;

        while(cur != null){
                if (cur.right != null){
                    pre = cur;
                    cur = cur.right;
                }else {
                    break;
                }
        }

        if (cur.left != null){
            pre = cur.left;
            while(pre.right != null){
                pre = pre.right;
            }
        }
        return pre;

    }
}
回复

使用道具 举报

🔗
faye_roll 2015-4-24 12:48:22 | 只看该作者
全局:
ucichuck 发表于 2015-4-22 15:03
写了下这两道题,应该是对的:

第一题:

第一题 如果输入是Integer.MIN_VALUE 结果就不对了。。
回复

使用道具 举报

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

本版积分规则

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