一亩三分地论坛

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

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

11.23 Google onsite

[复制链接] |试试Instant~ |关注本帖
cc11328 发表于 2015-11-25 23:12:19 | 显示全部楼层 |阅读模式

2015(10-12月) 码农类 硕士 全职@Google - 内推 - Onsite |Otherfresh grad应届毕业生

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

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

x
23号才面完的 楼主才回家 寻思发个面经攒下人品 顺便方便将要面试的战友们
说实话楼主真的很幸运了,4个面试官加上中午领着吃饭的英国小哥都很nice,都是很用心的陪我一起解决问题,没有那种故意刁难的,只不过楼主没经验加上紧张,当实力也是不够,感觉很难过,希望能转到residency program就好。Google真的是非常好的公司,短短两天深深地爱上这了。废话不说了上题

第一轮:国人姐姐,restruct queue题目意思大概是这样。一群人在一点商店的门口排好队站着,每个人的身高都不同,到中午了,大家都去吃饭,吃完饭之后回来,要求按照之前的顺序排好队,给的信息是每个人的身高和原来队伍中在其前面有多少个比他高的人。 这轮本身不是很困难,但是楼主第一轮太紧张了,算法搞定后,在coding的时候卡在了插入的环节,国人姐姐很有耐心也帮助了我不少,最后想想,代码还是有点问题。
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
第二轮:美国小哥,leetcode原题之前面经也出现过,https://leetcode.com/problems/strobogrammatic-number-ii/,改动就是说要求输出所有的小于N的,还降低了难度,像“00”,“010”什么的也合法。做完之后,跑了下test case,发现了点问题及时改正了,follow up 就是如何改进,因为是要输出所有的数字,所以可以在中间用memorization得思想保存中间结果,比如N=3,在求3位的时候会用到1位的数字,这时候保存之前计算过的1位的数字的话就可以减少recursion的次数。

第三轮:美国小哥,上来就说我们做一道软件设计题吧,当时楼主就懵逼了,设计题!首先是问我知道palindrome么,让我写一个函数判断一个string是不是palindrome,然后又问知道什么叫(名词忘了姑且叫allcharha'r)意思就是说这个字符串含有所有的字符(a-z),先说可以用哈希表然后又说可以直接建立个大小为26的数组记录。接着又问给一个字典里面有很多单词,问有多少组合。接下来就开始放大招了,给一个很大的字典,要求找出这个字典里面既是palindrome又是allchar的组合并且要求最短。首先用最暴力的方法解了一遍,然后讨论如何改进,这轮更像是头脑风暴。. Waral 鍗氬鏈夋洿澶氭枃绔,
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
第四轮: 印度小哥,说实话,看见印度人怕被坑,但是这个小哥非常的nice,第一道是面经出现过的题目,给一个双向链表和一个存着部分节点的数组,问这个数组里面的节点能划分成几个group。第二道题目是一个dp题,类似于俄罗斯方块,楼主感觉非常难,大概意思就是问怎么填满一个n*2的区域,只要求写出公式,跟印度小哥讨论着做出来的,给了大量的提示,甚至觉得是他在做。

评分

1

查看全部评分

本帖被以下淘专辑推荐:

returning 发表于 2015-11-30 02:15:01 | 显示全部楼层
xixiaoxi 发表于 2015-11-28 12:24
第一题我觉得可以O(nlgn)解决,先从高到低sort()一下,然后用两个指针traverse,如果前面比他高的有k个,当 ...

第一题可以bst吧,bst按照这个节点的位置排序,先从高到低sort,然后根据f(x)插入,f(x)表示x前面有多少个人比他高,同时每个节点维护当前有多少个节点在其左边,这可以在递归时候返回。

第一高的人是root。第二高的人,f(x)值决定是在root的左边还是右边。第n高的人,f(x)最多为n-1,由于我们已经维护了当前每个节点左边多少个节点,所以就知道插入的位置了。这里key point是,比x高的人是在他之前插入tree的,因为我们是按照从高到底插入tree。

bst最后in order traverse就是返回的结果。

但是因为没有balance,所以结果也不一定好哪里去。
回复 支持 2 反对 0

使用道具 举报

xixiaoxi 发表于 2015-11-28 12:24:14 | 显示全部楼层
第一题我觉得可以O(nlgn)解决,先从高到低sort()一下,然后用两个指针traverse,如果前面比他高的有k个,当前index:n, if (k<n) 让array里面的k和n位置的两个数交换就好了。
回复 支持 1 反对 0

使用道具 举报

 楼主| cc11328 发表于 2015-11-25 23:16:12 | 显示全部楼层
国人姐姐要是看见了,真的想表达下感谢,很有耐心,只怪我脑子当时卡在那了。过HC啥的是不想了,希望能拼个residency program吧。
回复 支持 反对

使用道具 举报

bobzhang2004 发表于 2015-11-26 03:23:21 来自手机 | 显示全部楼层
请问楼主第二题的改进是指.. number III的方法,用hashmap记录吗?可以给一下第四轮第二题的公式吗?
回复 支持 反对

使用道具 举报

yjfox 发表于 2015-11-26 07:46:37 | 显示全部楼层
要求找出这个字典里面既是palindrome又是allchar的组合并且要求最短。

lz这题面试官说了啥?
回复 支持 反对

使用道具 举报

千骨娜娜 发表于 2015-11-26 09:30:17 | 显示全部楼层
请问楼主第一题的复杂度要求是多少?想出来一个方法,先把所有人按高到低排序,然后再逐个插入,感觉这样复杂度会是O(n^2).
回复 支持 反对

使用道具 举报

RagingSword 发表于 2015-11-26 10:26:51 | 显示全部楼层
同问第一题,也只想到O(N^2)算法
回复 支持 反对

使用道具 举报

say543 发表于 2015-11-26 15:26:51 | 显示全部楼层
第一轮我也是想到o(n^2) 的做法但是我我会想从sort 从矮的到高的 ?  第三轮我会先用allcharrha 的条件把string sorted 后确认有没有包含有包含的且长度小于目前找到最短的在做parlindrome 的check 是这样解吗? 另外LZ有什么地方可以优化呢?
回复 支持 反对

使用道具 举报

RagingSword 发表于 2015-11-26 23:17:57 | 显示全部楼层
第三题有想让并行处理吗?
回复 支持 反对

使用道具 举报

jkingxt 发表于 2015-11-27 06:32:50 | 显示全部楼层
询问一下第四题的公式是什么?
回复 支持 反对

使用道具 举报

bill701 发表于 2015-11-28 03:43:49 来自手机 | 显示全部楼层
楼主有消息了吗
回复 支持 反对

使用道具 举报

RagingSword 发表于 2015-11-29 01:44:05 | 显示全部楼层
xixiaoxi 发表于 2015-11-28 12:24
第一题我觉得可以O(nlgn)解决,先从高到低sort()一下,然后用两个指针traverse,如果前面比他高的有k个,当 ...
-google 1point3acres
我觉得这儿交换不行,得插入。你试试(12,0)(9, 0) (5, 0)(1, 2),结果不对。
回复 支持 反对

使用道具 举报

returning 发表于 2015-11-29 02:35:24 | 显示全部楼层
谢谢楼主分享,能说下第四轮两道题吗,我连第一题都不清楚是什么题。

谢谢了。
回复 支持 反对

使用道具 举报

hyliu0000 发表于 2015-11-29 09:30:14 | 显示全部楼层
楼主, 第四题那个题能不能详细说说? 是有哪几种方块? 最后是求有多少种填满的方式吗?
回复 支持 反对

使用道具 举报

gvim 发表于 2015-11-29 17:03:13 | 显示全部楼层
xixiaoxi 发表于 2015-11-28 12:24
第一题我觉得可以O(nlgn)解决,先从高到低sort()一下,然后用两个指针traverse,如果前面比他高的有k个,当 ...
.1point3acres缃
这个是正解
回复 支持 反对

使用道具 举报

xixiaoxi 发表于 2015-11-30 09:18:01 | 显示全部楼层
RagingSword 发表于 2015-11-29 01:44
我觉得这儿交换不行,得插入。你试试(12,0)(9, 0) (5, 0)(1, 2),结果不对。

对,swap不行,得插入。谢提醒
回复 支持 反对

使用道具 举报

sonicgu 发表于 2015-11-30 10:03:57 | 显示全部楼层
请问lz最后一轮的dp题是问有多少种填法,还是要问什么
回复 支持 反对

使用道具 举报

 楼主| cc11328 发表于 2015-11-30 23:25:54 | 显示全部楼层
不好意思了各位 最近在准备亚麻 赶上感恩节也给自己放了两天假,回复晚了。

对于第一题,楼主是用的O(n^2)做的,比较直白, 对于第三题目,主要是和面试官聊了各种想法,并没有让写代码,主要考察思维和知识储备吧,这个看个人了,你说什么面试官都会表示很感兴趣然后深入和你讨论,对于第四题,俄罗斯方块拿到题目 只有两种方块可以使用--- 和|_ _ 问题是让你填满n*2的格子,列出公式,分三种情况,第一种室说没有剩余空格,第二种是由一个剩余空格,第三种是有两个剩余空格,然后把这三种情况整合在一起可以写出个表达式,对了你还得分析什么时候不可能填满 举个例子就是n = 4的时候无论怎样你都是填不满的,这个也需要写出公式,楼主确实是忘了怎么写了,这道题完全是根印度小哥聊天做完的,感觉大部分时间是他在做,过程中会问问我,所以公式真的记不太住了。
回复 支持 反对

使用道具 举报

RagingSword 发表于 2015-11-30 23:40:54 | 显示全部楼层
cc11328 发表于 2015-11-30 23:25
不好意思了各位 最近在准备亚麻 赶上感恩节也给自己放了两天假,回复晚了。

对于第一题,楼主是用的O(n^ ...
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
谢谢楼主,这题真的好像竞赛题,有消息了吗?
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-3 11:01

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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