一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1454|回复: 4
收起左侧

Google onsite MTV

[复制链接] |试试Instant~ |关注本帖
牛牛猪 发表于 2015-11-15 07:28:30 | 显示全部楼层 |阅读模式

2015(10-12月) 码农类 硕士 全职@Google - 内推 - Onsite |Pass在职跳槽

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

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
一个大牛朋友内推的,Skip了phone interview,直接去了onite,共5轮:
1. 一个亚裔哥们,不确定是不是中国人: 两题coding, 题目1是leetcode原题Edit Distance,题目2就是Search Insert Position,只是描述成一个比较具体的问题而已(找第一个坏掉的package version).
2. 白人小哥: design题,设计一个演唱会卖票的系统。先分析了一下基本的feature,然后设计了一个基本的web service architecture. 聊聊每个layer的一些细节和如何scale的方法,以及一下concurrency下的thread safe的东西。
3. 一个三哥: 问的是一道算法题,有一个array,里面的元素不会变。设计一个data strucutre,能够快速找出一段range的最大值。稍微提了一下hash index,然后用segment tree解的。segment tree不是很熟,只是知道一个大概的思路,所以和三哥交流分析了很久,然后写了一下search的recursion code. 这里tricky是如果不熟悉就不要提算法的名字,直接从算法的基本开始分析,比如说考虑建立一个tree,然后如何建立tree,这样的复杂度可能如何。如果提了segment tree,但是又不熟,可能印象不大好。
4. 白人大叔: 一道面经题,给一个n*m 2D array,里面是从1到n*m的没有重复的整数,打乱了放。找最大的连续长度。
5. 白人小哥, 问的东西很杂:先是一道decode 和 encode的coding题。具体问题实在记不清了。做完之后followup了一下优化。接下来让我写一个LRU cache, 这里比较有趣,我开玩笑说要是production code我优先考虑用LinkedHashMap,里面可以设置insertion order 或者access order, 然后说既然是面试我就实现一个类似的。正准备去写,小哥叫停,说不用了,知道你会,我们换一个,我稍微囧了一下,又开玩笑说,行,反正我给你写的那个肯定不如LinkedHashMap来的有效率。接下来他给了两页code让我看,貌似是一些legacy Java code,问我如何refactor。他没有给提示refactor的方向,让我自己发挥,我只好乱说了了一大堆。主要是一些基本的java programming practice, 比如尽量使用final,可以的话make the class immutable. 那种constructor有一大顿参数的改为builder pattern实现,看到里面有一个async call,我说这种async call最好返回一个future什么的,这样可以方便后面lifecycle控制。还有有些option flag 可以使用enum。说了一堆细节之后,小哥觉得我这样再挖细节就方向错误了,问我有个block是否可以优化。看了一会儿发现确实可以优化,具体问题有点忘了,但是优化的核心思路就encapsulation, 就是是不要把属于A Class的一些重要的logic放在B Class中。. From 1point 3acres bbs

感觉面试题都不算很难,而且只有一个三哥,他也没有为难我,经常和我互动。这样的面试感觉不错,面试官也没有特别说要把你难倒,更多的是互动和交流。所以周一面完周三recruiter就给我了4个team让我去聊聊。
. Waral 鍗氬鏈夋洿澶氭枃绔,
感谢之前地里各位分享的面经,受益匪浅,希望大家都能找到理想的工作!. Waral 鍗氬鏈夋洿澶氭枃绔,




评分

1

查看全部评分

本帖被以下淘专辑推荐:

hj867955629 发表于 2015-11-16 08:04:23 | 显示全部楼层
queeniejing 发表于 2015-11-15 09:37
谢谢lz 分享, 能说一下第三题的思路吗?

class SegmentTreeNode {
        int l, r, max;
        SegmentTreeNode left, right;
        public SegmentTreeNode(int l, int r) {
                max = Integer.MIN_VALUE;
                this.l = l;
                this.r = r;
                left = right = null;
        }       
}. 1point 3acres 璁哄潧

. 1point3acres.com/bbs
class Solution {       
        private SegmentTreeNode stRoot = null;
        private SegmentTreeNode buildSegmentTreeNode(int[] nums, int start, int end) {
                if (start == end) {
                        SegmentTreeNode cur = new SegmentTreeNode(start, end);
                        cur.max = nums[start];
                        return cur;
                }. from: 1point3acres.com/bbs
                SegmentTreeNode root = new SegmentTreeNode(start, end);
                int mid = (start+end)/2;
                root.left = buildSegmentTreeNode(nums, start, mid);
                root.right = buildSegmentTreeNode(nums, mid+1, end);
                root.max = Math.max(root.left.max, root.right.max);
                return root;
        }
       
        public void build(int[] nums) {
                stRoot =  buildSegmentTreeNode(nums, 0, nums.length-1);. visit 1point3acres.com for more.
        }
       
        private int searchMaxFromST(SegmentTreeNode cur, int startIndex, int endIndex) {
                if (cur.l == startIndex && cur.r == endIndex) {
                        return cur.max;
                }
                int mid = (cur.l + cur.r)/2;-google 1point3acres
                if (startIndex > mid) {
                        return searchMaxFromST(cur.right, startIndex, endIndex);
                }
                else if (endIndex <= mid) {
                        return searchMaxFromST(cur.left, startIndex, endIndex);
                }
                return Math.max(searchMaxFromST(cur.left, startIndex, mid), searchMaxFromST(cur.right, mid+1, endIndex));
        }
       
        public int searchMax(int[] nums, int startIndex, int endIndex) {
                if (startIndex == endIndex) {. 1point 3acres 璁哄潧
                        return nums[startIndex];
                }
                return searchMaxFromST(stRoot, startIndex, endIndex);
        }
}
回复 支持 1 反对 0

使用道具 举报

queeniejing 发表于 2015-11-15 09:37:41 | 显示全部楼层
谢谢lz 分享, 能说一下第三题的思路吗?
回复 支持 反对

使用道具 举报

jinzheyu 发表于 2015-11-15 10:17:38 | 显示全部楼层
楼主拿到HR提供的各个面试的feedback了吗?方便分享一下吗?谢谢。
回复 支持 反对

使用道具 举报

 楼主| 牛牛猪 发表于 2015-11-16 02:22:37 | 显示全部楼层
jinzheyu 发表于 2015-11-15 10:17
楼主拿到HR提供的各个面试的feedback了吗?方便分享一下吗?谢谢。

问了feedback,HR说不给细节的。
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

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

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-5 23:34

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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