谷歌2017面经题集 - jxr041100 - 博客园



谷歌2017面经题集 - jxr041100 - 博客园

发个Google onsite 面经给需要的人。
round 1: 国人大哥, 出了道 merge N 个sorted element list的题, 要写成Generic的形式。 第二题是leetcode 256. Paint House, 只不过他要输出path就是最少cost的具体方案。第二题说是没时间了只让我说了下思路解法。

round 2: 国人, 出了道大题, 光搞清楚题意就搞了半天: 把你有没有pass考试这条信息通过一群同学传给你妈妈,每个同学可以选择说实话或者谎话每个同学可以选择告诉另一些同学或者直接告诉你妈妈, 然后最后你妈妈会告诉你最后告诉她的同学说了什么(即知道最后跟你妈妈说的同学是说了实话或者谎话) 问最后有多少同学说了谎,撒谎的同学的概率。最后也是没时间写完了。

round 3: 白人, 好像背景是道经典的数学问题: 一个数,如果是偶数就除以2, 如果是奇数就乘以3加1. 直到出现循环重复。然后第一问就是给个数然后这个数到循环前要多少步。第二问好像是给个数看是否这个数会出现循环(记不太清了, 但是问题很简单不难),然后就是问了下如果优化。
.1point3acres缃
round 4: 三姐, 那浓浓的咖喱味。。。 问了道经典的3sum smaller. 然后leetcode 490 the maze
. From 1point 3acres bbs
round 5 可能是国女吧, leetcode 394 Decode String

我的题整体来说并不难,希望能帮助到大家, 顺便能给点分我哈

 

第一轮
163,269,老白不懂拓扑排序,解释一通,没写完
第二轮
java gc
抽象类和接口的区别,很多细节
unit test时好时坏怎么办,看随机数,Date, 多线程
算法 238
第三轮
烙印让设计一个订票系统,各种表,不过感觉烙印有点弱,也不太懂,开始说不管性能,最后剩5分钟开始问性能,几乎要重新设计,轻度被黑
第四轮
跑得快,手上一堆整数,能不能全部分成顺子,顺子是3个以上连续数。
第五轮
200k个字符串,找到最小的会文字串,还要同时包含所有的字母(字母集合可能不止512).

 

Onsite 5轮,楼主工作以来的两年多主要都是做web client的,背景偏向front-end,虽然表达了不局限于front-end想找full stack的职位,recruiter仍给match了Web Front End的方向。楼主用javascript刷题面试,这五轮里也都有涉及前端相关的知识点。
第一轮:亚裔面孔小哥哥。javascript event callback。提供一个方法getLocationName(lat, long, callback)。callback里面的传回的参数是在这个坐标上的城市的名字。输入一个数组的坐标,要求按照输入数组的顺序一一打印出每一个坐标点所在的城市的名字。
第二轮:美国小哥哥。(1) lc 159变形。find the longest substring with at most two instances(a character provided) in it. (2) 数组里不相邻的数字相加可以得到的最大值
第三轮:亚裔面孔小哥哥。解释cdn,javascript bundler, javascript event. 做题。给一个平行于x轴的矩形,要求随机生成一个矩形内的坐标点。follow up:给一堆不相交的平行于x轴的矩形。要求随机生成一个坐标点在任意一个矩形内。落在某一个矩形内的概率和矩形面积成正比。

.午饭:亚裔面孔老哥哥。听老哥哥说他的一个同事当年面完google以后回家病了三天
第四轮:亚裔面孔小哥哥。判断两个query是不是同义。给一个list的同义词数组,比如[[fast, quick], [rate, percentage]], 输入两个string queries,根据同义词数组来判断这两个query是否同义。
第五轮:美国小哥哥。包装过的merge intervals。给一个string和一堆substrings,如果substring在string里,就把string里面的substring那部分wrap上<b></b>。比如给string:"abcde", substrings: ["ab", "d"], 要求返回"<b>ab</b>c<b>d</b>e"

简短描述一下最近google的onsiteround 1: 股票交易
round 2: 坐标上一堆点,求能组成的最小矩形
round 3: 同义词,hashmap,union find相关.
round 4: design. 分布式系统维护一个全局id 涓€浜.涓夊垎鍦拌鍧.
round 5: infrastructure相关.1poi

 

1. 给两个字符串,返回第一个在第二个里面discontinous matches的数量。discontinous matches的定义是 (所有匹配的character中没有任何两个是相邻的)
举例:
Input: "cat", "catapult". 

Output: 1
catapult => not good
catapult => not good
cactapult => good

. Waral 鍗氬鏈夋洿澶氭枃绔,
2. 类似于range sum query: 有一个无限大的2D matrix,设计一个class并实现update(int r, int c, int val)和sum(int r1, int c1, int r2, int c2)两个function,也就是更新一个位置的值以及求和一个矩形内所有位置的值

六月初onsite。

第一轮:leetcode 10 https://leetcode.com/problems/re ... ching/#/description
第二轮:第一问:二维坐标中给了一个矩形,要求生成一个任意一个坐标点,位置在矩形内。第二问,二维坐标中有多个不重叠的矩形,要求生成一个任意坐标点,位置在这些矩形中,要求生成的点落在各矩形的概率相同。followup:如果提供这两个function,isOverlap(rectangle a, rectangle b) 判断两个矩形是否重合, split(rectangle a, rectangle b) 若两矩形重合,将两个矩形分成互补重叠的小矩形, 问题是: 如何在上述的矩形中加入一个新的矩形. 欏璁哄潧-涓€浜-涓夊垎鍦
第三轮:给定一个0-1 matrix,0表示wall,1表示可以走,问从第一行是否能够找到一条path到达最后一行。followup 1:打印出最短的path。followup 2:如果不是0-1 matrix,0依旧表示wall,而>=1表示经过改点的cost,要求打印出从第一行走到最后一行cost最小的path
第四轮:写一个表示employment的class,其中有三个method: makeManager(p1, p2): 将p1安排为p2的manager, makeColleague(p1, p2): build p1和p2为同事关系, isManager(p1, p2): 判断p1是否为p2的manager
第五轮:给出一组同义词的mapping关系,比如:(fast, quick), (fast, speedy), (learn, study)表示fast==quick, fast==speedy, learn==study, 但是fast!=quick. 要求写一个function判断两个senten是否为同义关系。IsSynonymous(List<List<Strings>> synonymousWords, Strings sentence1, Strings sentence2). followup:如果同义关系可以传递,比如:speedy==quick, 修改上述function。
. 涓€浜-涓夊垎-鍦帮紝鐙鍙戝竷

补充内容 (2017-6-22 13:59):
更正:
第五轮:给出一组同义词的mapping关系,比如:(fast, quick), (fast, speedy), (learn, study)表示fast==quick, fast==speedy, learn==study, 但是quick!=speedy. 要求写一个function判断两个senten是否为...nt3acr

Onsite 5轮,楼主工作以来的两年多主要都是做web client的,

第一轮:亚裔面孔小哥哥。javascript event callback。提供一个方法getLocationName(lat, long, callback)。callback里面的传回的参数是在这个坐标上的城市的名字。输入一个数组的坐标,要求按照输入数组的顺序一一打印出每一个坐标点所在的城市的名字。

第二轮:美国小哥哥。(1) lc 159变形。find the longest substring with at most two instances(a character provided) in it. (2) 数组里不相邻的数字相加可以得到的最大值


Read full article from 谷歌2017面经题集 - jxr041100 - 博客园


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts