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

Google Phone 9/30

全局:

2016(7-9月) 码农类General 硕士 全职@google - 猎头 - 技术电面  | | Other | 应届毕业生

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

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

x
面试官迟到了10分钟。。。。
据口音应该是个帅气白人哥,上来先自我介绍一番,在Google map做卫星*&……*&#!@#^^#什么什么的,太高大上,没怎么听懂。。。
然后接着就问了我两个beha问题:
1. What specific product in Google are you interested in and why.
2. Why you wanna work at Google.
胡扯了一堆然后大概时间过去了快20MIN..
coding..
一开始他问
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
到right <= max。。。。

然后在结束前大概写出来了。。也不知道他怎么想的,有几个小BUG但是改过来了。 剩几分钟 愉快的聊了会天 。。。 可能是因为周五吧 他感觉全程都很高兴。。

有点坎坷,但是希望能过。。。。- -。。

评分

参与人数 4大米 +57 收起 理由
洋葱a + 5 感谢分享!
木易wen + 1 感谢分享!
WhatsFLAG + 1 感谢分享!
夏虫不知雪花 + 50

查看全部评分


上一篇:求Amazon群面面经
下一篇:Google 9/30 电面面经

本帖被以下淘专辑推荐:

推荐
 楼主| ericlee27 2016-10-2 06:57:52 | 只看该作者
全局:
不好意思 下午出去了 回家找了找昨天的草纸  把代码贴出来分享一下

是根据我那个思路写的,如果不对还请大牛们指出!

  1. public int findMaximumGap(int[] nums){
  2.         // Invalid
  3.         if (nums == null || nums.length == 0) return 0;
  4.         int[] smallestSoFar = new int[nums.length];
  5.         smallestSoFar[0] = nums[0];
  6.         for (int i = 1; i < nums.length; ++i) {
  7.             smallestSoFar[i] = (nums[i] < smallestSoFar[i - 1]) ? nums[i] : smallestSoFar[nums.length - 1];
  8.         }
  9.         int max = 0;
  10.         for (int j = nums.length - 1; j > max; j--){
  11.             while ((j > max) && (nums[j] >= smallestSoFar[j - max - 1])) {
  12.                 ++max;
  13.             }
  14.         }
  15.         return max;
  16.     }
复制代码




补充内容 (2016-10-3 03:59):
SorrY 各位,有一处TYPO 第七行最右边的坐标应该是i 不是nums.length-1,打上来的时候打错了 抱歉
回复

使用道具 举报

推荐
gaohannk 2016-10-2 12:26:06 | 只看该作者
全局:
ericlee27 发表于 2016-10-2 06:57
不好意思 下午出去了 回家找了找昨天的草纸  把代码贴出来分享一下

是根据我那个思路写的,如果不对还请 ...
  1.         public static int maxDistance(int[] A) {
  2.                 if(A.length<2)
  3.                         return 0;
  4.                 int[] smallest = new int[A.length];
  5.                 int min = Integer.MAX_VALUE;
  6.                 for (int i = 0; i < A.length; i++) {
  7.                         min = A[i] > min ? min : A[i];
  8.                         smallest[i] = min;
  9.                 }
  10.                 // left从right左边一位开始逐渐左移
  11.                 int right = A.length - 1, left = right - 1;
  12.                 int max = 0;
  13.                 while (right >= max&&left>=0) {
  14.                         if (A[right] > smallest[left]) {
  15.                                 max = right - left;
  16.                                 left--;
  17.                         } else {
  18.                                 right--;
  19.                         }
  20.                 }
  21.                 return max;
  22.         }
复制代码
一样解法
回复

使用道具 举报

推荐
木易wen 2016-10-2 02:08:24 | 只看该作者
全局:
这题O(n), O(1)就行吧,双指针

  1. private static int findMaxDistance(int[] A) {
  2.                 if(A.length < 2) {
  3.                         return 0;
  4.                 }
  5.                 int begin = 0, end = 1, dist = 0;
  6.                 do {
  7.                         if(A[end] >= A[end - 1]) {
  8.                                 dist = Math.max(end - begin, dist);
  9.                         }else {
  10.                                 if(A[end] >= A[begin]) {
  11.                                         dist = Math.max(end - begin, dist);
  12.                                 }else {
  13.                                         begin = end;
  14.                                 }
  15.                         }
  16.                 } while(++ end < A.length);
  17.                 return dist;
  18.         }
复制代码
回复

使用道具 举报

🔗
WhatsFLAG 2016-10-2 00:58:55 | 只看该作者
全局:
这个方法好精妙啊,楼主大牛!
回复

使用道具 举报

🔗
 楼主| ericlee27 2016-10-2 01:26:20 | 只看该作者
全局:
WhatsFLAG 发表于 2016-10-2 00:58
这个方法好精妙啊,楼主大牛!

估计是因为周五了 面试官很开心 给了个大Hint 哈哈~
回复

使用道具 举报

🔗
Hualiang 2016-10-2 02:27:02 | 只看该作者
全局:
第二题不是buy and sell stock吗?
回复

使用道具 举报

🔗
WhatsFLAG 2016-10-2 02:33:10 | 只看该作者
全局:
木易wen 发表于 2016-10-2 02:08
这题O(n), O(1)就行吧,双指针

看了你的代码,没有运行,但是不敢苟同啊
回复

使用道具 举报

🔗
seuzbw 2016-10-2 02:34:23 | 只看该作者
全局:
木易wen 发表于 2016-10-2 02:08
这题O(n), O(1)就行吧,双指针

每次end<begin的时候,你把begin移动到end,这一步错了
你可以想象此时后面的数字都特别大,比一开始begin还大,你却把begin移动到end了
回复

使用道具 举报

🔗
rcholic 2016-10-2 02:45:15 | 只看该作者
全局:
上代码试试,看看对吗?

  1. public int maxDistance(int[] nums) {


  2.         int[] minIndices = new int[nums.length]; // indices of the smallest number so far
  3.         int min = nums[0];
  4.         int minIndex = 0;
  5.         for (int i = 0; i < nums.length; i++) {
  6.             if (nums[i] < min) {
  7.                 min = nums[i];
  8.                 minIndex = i;
  9.             }
  10.             minIndices[i] = minIndex;
  11.         }

  12.         int j = nums.length - 1;
  13.         int result = Integer.MIN_VALUE;
  14.         while (j >= 0) {
  15.             if (nums[j] >= nums[minIndices[j]]) {
  16.                 result = Math.max(result, j - minIndices[j]);
  17.             }
  18.             j--;
  19.         }

  20.         return result;
  21.     }
复制代码

补充内容 (2016-10-2 03:21):
好像错了!test case: [6, 2, 3, 4, 3, 5, 6], 这个情况应该是返回 6!
回复

使用道具 举报

🔗
木易wen 2016-10-2 02:55:13 | 只看该作者
全局:

哦, 想错了,sorry
回复

使用道具 举报

🔗
rcholic 2016-10-2 03:23:27 | 只看该作者
全局:
楼上@木易wen 的代码和我给出的代码貌似都错了,对于这个test case:
[6, 2, 3, 4, 3, 5, 6], 这个情况应该是返回 6!

上面代码返回的结果却是4!错了吧?
回复

使用道具 举报

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

本版积分规则

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