📣 4th of July限时特惠: VIP通行证立减$68
回复: 44
跳转到指定楼层
上一主题 下一主题
收起左侧

Google刚面完新鲜出炉Onsite3.9

全局:

2015(1-3月) 码农类General 硕士 全职@google - 网上海投 - Onsite  | | Other |

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

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

x
第一轮,面的是白人大叔,一上来就做题,一个matrix,实现两个functions,第一个是设置某个位置的value的function,这个小学生都能做,O(1),第二个是给两个位置坐标,这两个位置坐标形成的长方形的值的和,最暴力的方法O(n^2), 大叔说这个function可以怎么优化,答可以预处理,提前算好某个位置到(0,0)形成的长方形的和,然后这样第二个function就可以O(1)实现。大叔继续follow up,那这样的话每次设置了某个位置的value后都需要update每个包含了这个值的长方形的和,所以第一个function又是O
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
urpass count,题目貌似是经典题,但这会lz已经精疲力尽,答得很不好,中间卡了很久,估计这轮悲剧了

写出来给自己的job hunting之路攒下RP吧,GG的话就让它随风而去吧,耳边响起let it go。。。

评分

参与人数 6大米 +152 收起 理由
豌豆开心果 + 130
shinichish + 10 楼主,谢谢你的面经分享!
stephengmj + 3 很有用的信息!
wuluoluo + 3 感谢分享!
cjlm007 + 3 感谢分享!

查看全部评分


上一篇:Amazon summer 2015 internship 面积
下一篇:Amazon Intern OA 3-9 due

本帖被以下淘专辑推荐:

推荐
tanis 2015-3-10 22:15:27 | 只看该作者
全局:
这不是标准的Inversions count么。。
回复

使用道具 举报

全局:
surpass的code。 求大牛点拨
  1. package google;

  2. public class Surpasser {
  3.         public static int surpasser(int[] arr){
  4.                 if(arr.length < 2)        return 0;
  5.                 int[] surp = new int[arr.length];
  6.                 for(int i = 0; i < arr.length; ++i) {        surp[i] = 0;        }
  7.                
  8.                 mergeSortHelper(arr, 0, arr.length, surp);
  9.                
  10.                 int max = surp[0];
  11.                 for(int i = 0; i < arr.length; ++i) {
  12.                         max = Math.max(max, surp[i]);
  13.                 }
  14.                
  15.                 return max;
  16.         }
  17.        
  18.         public static int[][] mergeSortHelper(int[] arr, int st, int en, int[] surp) {               
  19.                 int[][] result = new int[2][en - st];
  20.                 if(en - st == 1) {
  21.                         result[0][0] = surp[st];
  22.                         result[1][0] = arr[st];
  23.                 } else {               
  24.                
  25.                         int mid = st + (en - st) / 2;
  26.                
  27.                         int[][] left = mergeSortHelper(arr, st, mid, surp);
  28.                         int[][] right = mergeSortHelper(arr, mid, en, surp);
  29.                         int i = 0, j  = 0, k = 0;
  30.                
  31.                         while(i < left[0].length && j < right[0].length) {
  32.                                 if(left[1][i] < right[1][j]) {
  33.                                         result[0][k] = left[0][i] + right[0].length - j;
  34.                                         result[1][k] = left[1][i];
  35.                                         ++i;
  36.                                 } else {
  37.                                         result[0][k] = right[0][j];
  38.                                         result[1][k] = right[1][j];
  39.                                         ++j;
  40.                                 }
  41.                                 ++k;
  42.                         }
  43.                
  44.                         if(i < left[0].length){
  45.                                 result[0][k] = left[0][i];
  46.                                 result[1][k] = left[1][i];
  47.                                 ++i;
  48.                                 ++k;
  49.                         }
  50.                
  51.                         if(j < right[0].length) {                       
  52.                                 result[0][k] = right[0][j];
  53.                                 result[1][k] = right[1][j];
  54.                                 ++j;
  55.                                 ++k;
  56.                         }
  57.                
  58.                         for(int l = st; l < en; ++l){
  59.                                 arr[l] = result[1][l - st];
  60.                                 surp[l] = result[0][l - st];
  61.                         }
  62.                 }
  63.                
  64.                 return result;
  65.         }
  66.        
  67.         public static void main(String[] args){
  68.                 int[] arr = new int[]{10, 3, 0, 7, 1, -1, 14, 23, 6, 9};
  69.                 System.out.println(surpasser(arr));
  70.         }       
  71. }
复制代码
回复

使用道具 举报

推荐
lzd1127 2015-3-11 11:31:20 | 只看该作者
全局:
ryuichist 发表于 2015-3-11 10:31
感谢分享!

恕我孤陋寡闻,我觉得三哥都是很阴险的,要么就是笑面虎,要么就是板着一块脸。我和三哥面试 ...

感觉一般面试最难的是国人吧。。面试难度就最大
回复

使用道具 举报

🔗
houpy 2015-3-10 10:59:11 | 只看该作者
全局:
我觉得3个做得不错,1轮一般,应该可以的,祝楼主好运
回复

使用道具 举报

🔗
readman 2015-3-10 10:59:20 | 只看该作者
全局:
第三轮的题是啥啊...
回复

使用道具 举报

🔗
lzd1127 2015-3-10 11:25:27 | 只看该作者
全局:
嗯,祝LZ offer
回复

使用道具 举报

🔗
houqingniao 2015-3-10 12:21:55 | 只看该作者
全局:
bless 楼主。
第二题啥意思?
回复

使用道具 举报

🔗
refurbish 2015-3-10 16:26:18 | 只看该作者
全局:
安慰一下lz,第四题surpass count是啥意思,没搜到相关的问题。。。
回复

使用道具 举报

🔗
 楼主| cynthiazhxu 2015-3-10 21:13:44 | 只看该作者
全局:
refurbish 发表于 2015-3-10 16:26
安慰一下lz,第四题surpass count是啥意思,没搜到相关的问题。。。

输入一个数组,返回每个元素的surpasser个数。
数组元素a【i】的surpasser是指元素a[j], j > i, a[j] > a【i】。
比如[10, 3, 7, 1, 23, 14, 6, 9] 这个数组中10的surpasser是23和14,surpasser个数是2。
回复

使用道具 举报

🔗
 楼主| cynthiazhxu 2015-3-10 21:16:38 | 只看该作者
全局:
houqingniao 发表于 2015-3-10 12:21
bless 楼主。
第二题啥意思?

给个例子,比如k=4, 应该输出"0/4 1/4 1/3 1/2 2/3 3/4 1/1"
回复

使用道具 举报

🔗
averillzheng 2015-3-10 21:57:13 | 只看该作者
全局:
surpass count 用merge sort的思想来做。
回复

使用道具 举报

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

本版积分规则

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