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

Google onsite 面经

全局:

2016(1-3月) 码农类General 硕士 全职@google - 猎头 - Onsite  | | Fail | 应届毕业生

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

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

x
lz是两周前去onsite的,感觉还行,因为有deadline,所以催了hr,一周就被拒了。

第一轮:。大概是个东欧小哥,先是聊聊自己对各种语言的看法,然后做题。发音有点不太清楚,题目交流花了一点时间。
给一堆positive integer 如【10,15,20,25】之类,然后可以对integer用上cut的方法(如果大于10,则一次cut产生一个10),看在有限的cut的次数下,做多能cut多少个10出来.
可能描述的有点绕,举个例子:10 不需要cut,20, cut 一次就产生2个10, 30 ,cut1一次,产生一个10和一个20, cut2次产生3个10; 15 最多能被cut1次,会产生一个10.
我说greedy就行。然后coding。然后一题之后就让问问题了

第二轮:一个俄罗斯大叔1. 平面上一堆点,判断是否关于某个垂直于x轴的线对称,面经里有, 所以很快做完
2. 一个含有interger 的matrix, 找出一个点使得到左上角的submatrix
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
-

我的hr一直强调feedback 的 confidential,这是让我最郁闷的地方,都说g家慢,我一周就被拒了,8点还没醒,一个电话过来。。有点难以接受,也只能move on了。 anyway,大家加油!

p.s 本想面完缓几天发面经的,结果成了挂经,下次早发攒rp
p.p.s 如果有缘,最后一轮的国人小哥不知能否分享feedback



补充内容 (2016-2-10 08:52):
lz是1/28 周四面的

评分

参与人数 3大米 +9 收起 理由
guixi107 + 3 谢谢你的介绍!
Iancss + 3 感谢分享!
cocaptainco + 3 谢谢你的介绍!

查看全部评分


上一篇:Amazon 2.8 9AM 面经
下一篇:2.9 Google 谷歌电面 Phone Interview

本帖被以下淘专辑推荐:

推荐
Iancss 2016-2-10 14:57:24 | 只看该作者
全局:
Aprilyn 发表于 2016-2-10 14:35
应该就是https://leetcode.com/problems/range-sum-query-2d-immutable/这个的变形~

楼主 还有一个疑问 求硬币组合数那道题,DP是怎么解的?
我这边只想到用数学方法解,就是处理有 重复数 的情况。
回复

使用道具 举报

推荐
 楼主| Aprilyn 2016-2-10 10:48:08 | 只看该作者
全局:
javaprogrammer 发表于 2016-2-10 10:32
第三轮第二题,是不是每个不同种类的硬币都要选取,比如{1,1,2,2,3} 组成的面额是 1+2+3,1+1+2+3, 1+1+2+2 ...

一起回复啦,第三题不是都要选取,是只要值不同就算,可选可不选,1,2,3也算的

第一题是这样的,10不会消耗cut的次数,20,一次cut产生两个,1:2的比例,30是2:3,所以有限选10,然后20,然后30这样,之后再考虑不是10的倍数的情况
回复

使用道具 举报

全局:
第一题的做法
  1. public class WoodcutII {
  2.        
  3.         public static void main(String[] args) {
  4.                 int[] arr = {10, 15, 20, 25, 45};
  5.                 System.out.println(getMaxLength(arr, 1));
  6.                 System.out.println(getMaxLength(arr, 2));
  7.                 System.out.println(getMaxLength(arr, 3));
  8.                 System.out.println(getMaxLength(arr, 4));
  9.                 System.out.println(getMaxLength(arr, 5));
  10.         }
  11.         public static int getMaxLength(int[] arr, int k) {
  12.                 List<Integer> tens = new ArrayList<Integer>();
  13.                 int others = 0;
  14.                 for (int i : arr) {
  15.                         if (i % 10 == 0) {
  16.                                 tens.add(i);
  17.                         } else {
  18.                                 others++;
  19.                         }
  20.                 }
  21.                 Collections.sort(tens);
  22.                 int i = 0;
  23.                 int res = 0;
  24.                 while (k > 0 && i < tens.size()) {
  25.                         int num = tens.get(i) / 10;
  26.                         if (k >= num - 1) {
  27.                                 res += num;
  28.                                 k -= (num - 1);
  29.                         } else {
  30.                                 res += k;
  31.                                 k = 0;
  32.                         }
  33.                         i++;
  34.                 }
  35.                 res += Math.min(k, others);
  36.                
  37.                 return res;
  38.         }
  39. }
复制代码

评分

参与人数 1大米 +3 收起 理由
火火火bit + 3 感谢分享!

查看全部评分

回复

使用道具 举报

全局:
lz很厉害啊,为什么这样还会挂?

回复

使用道具 举报

全局:
第一题greedy是不是把数组排序,从最大的开始算起,大概是这样?

  1. public static int maxCut(int[] nums, int cutLimit) {
  2.         if (nums == null || nums.length == 0 || cutLimit <= 0) return 0;
  3.         Arrays.sort(nums);
  4.         int maxCut = 0;
  5.         for (int i = nums.length - 1; i >= 0; i--) {
  6.             if (nums[i] >= 10) {
  7.                 if (maxCut + nums[i] / 10 <= cutLimit) maxCut += nums[i] / 10;
  8.                 else {
  9.                     return cutLimit;
  10.                 }
  11.             }            
  12.         }
  13.         return maxCut;
  14.     }
复制代码
回复

使用道具 举报

全局:
第三轮第二题,是不是每个不同种类的硬币都要选取,比如{1,1,2,2,3} 组成的面额是 1+2+3,1+1+2+3, 1+1+2+2+3, 1+2+2+3?
回复

使用道具 举报

全局:
Aprilyn 发表于 2016-2-10 10:48
一起回复啦,第三题不是都要选取,是只要值不同就算,可选可不选,1,2,3也算的

第一题是这样的,10 ...

谢谢lz的回复,第三轮第二题,如果按照我那样从大到小算的话,把30cut了两次,拿到3个10,但是如果从小到大的话,只需要cut一次20,就能拿到3个10了,不知道我理解的对不对?
回复

使用道具 举报

🔗
 楼主| Aprilyn 2016-2-10 11:06:37 | 只看该作者
全局:
javaprogrammer 发表于 2016-2-10 11:02
谢谢lz的回复,第三轮第二题,如果按照我那样从大到小算的话,把30cut了两次,拿到3个10,但是如果从小到 ...

嗯,是需要从小到大,因为cut小的输入输出比高一些,但是得先考虑10的倍数,因为比如15,cut 1次得1个10, 但是20 cut1次,得两个10。
回复

使用道具 举报

🔗
Iancss 2016-2-10 11:48:09 | 只看该作者
全局:
楼主,第二轮第一题 和 第三轮第一题方便讲下吗?麻烦了~
回复

使用道具 举报

🔗
csgtc 2016-2-10 11:54:49 | 只看该作者
全局:
好奇怪啊,lz面的这么好,为什么还会悲剧。。。 背景怎么样
回复

使用道具 举报

全局:
Aprilyn 发表于 2016-2-10 11:06
嗯,是需要从小到大,因为cut小的输入输出比高一些,但是得先考虑10的倍数,因为比如15,cut 1次得1个10 ...

太感谢lz了,前两天看到地里的一个帖子说刚开始被google拒了,然后又有team要了他,lz可以去看看

lz水平很牛, 一定会有好的offer的,加油
回复

使用道具 举报

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

本版积分规则

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