一亩三分地论坛

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

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

11/23 Google Intern Interview

[复制链接] |试试Instant~ |关注本帖
tanpf5 发表于 2015-11-24 22:50:55 | 显示全部楼层 |阅读模式

2016(7-9月) 码农类 本科 实习@Google - 内推 - 技术电面 |Other其他

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

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

x
感觉题都不是很难,很可能机会没把握住哎
第一个纽约打来的国人小哥,两道题。第一题给一个字符串,把里面的元音字母reverse
第二题给一个sorted array和一个数字,在array里面找最接近的数返回index. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
第二个是ca打来的意大利大哥,写得太久了,最后时刻改完第一题,他说ok但不知道是不是因为时间到了就随口说的
题目是merge interval的变种,有overlap的intervals都删掉,保留没有overlap的返回

题真心不难啊,加州时间2点面完的,三个小时的工作时间没有等来offer是不是基本没戏了。
话说一般发offer是邮件,悲剧了是打电话这样子吗?
corn 发表于 2015-11-24 23:41:09 | 显示全部楼层
三小时,这得有多快的feedback才可以啊。。。正常情况下等两个星期都是有可能的吧。。。
楼主加油~
回复 支持 反对

使用道具 举报

curry97 发表于 2015-11-25 00:30:41 | 显示全部楼层
merge interval那题怎么做啊?
回复 支持 反对

使用道具 举报

 楼主| tanpf5 发表于 2015-11-25 00:34:36 | 显示全部楼层
curry97 发表于 2015-11-25 00:30
merge interval那题怎么做啊?

可以先在leetcode上把merge interval搞懂,然后这里面只要纪录一下被merge的intervals最后remove掉就可以了
回复 支持 反对

使用道具 举报

 楼主| tanpf5 发表于 2015-11-25 00:35:34 | 显示全部楼层
corn 发表于 2015-11-24 23:41
三小时,这得有多快的feedback才可以啊。。。正常情况下等两个星期都是有可能的吧。。。
楼主加油~

我看好像地里已经有人昨天面试拿到offer了。。而且我周围过的人一般出结果很快,现在很慌啊
回复 支持 反对

使用道具 举报

jacyjia 发表于 2015-11-25 05:24:01 | 显示全部楼层
tanpf5 发表于 2015-11-25 00:35
我看好像地里已经有人昨天面试拿到offer了。。而且我周围过的人一般出结果很快,现在很慌啊
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
我也是昨天面的今天没消息 一直在安慰自己过节了可能慢一点 TAT
回复 支持 反对

使用道具 举报

 楼主| tanpf5 发表于 2015-11-25 05:48:01 | 显示全部楼层
jacyjia 发表于 2015-11-25 05:24. visit 1point3acres.com for more.
我也是昨天面的今天没消息 一直在安慰自己过节了可能慢一点 TAT

今天查了下,速度基本取决于面试官上报的时间,规定在两周之内上报。
所以他们如果手头有活儿拖两天也是正常的,等等看吧
回复 支持 反对

使用道具 举报

jacyjia 发表于 2015-11-25 10:36:03 | 显示全部楼层
tanpf5 发表于 2015-11-25 05:48. Waral 鍗氬鏈夋洿澶氭枃绔,
今天查了下,速度基本取决于面试官上报的时间,规定在两周之内上报。
所以他们如果手头有活儿拖两天也是 ...

每天都很忐忑啊! 谢谢楼主~希望都可以pass~
回复 支持 反对

使用道具 举报

bobzhang2004 发表于 2015-12-3 00:31:28 | 显示全部楼层
interval,这个问题如果两个interval[2, 4], [4, 6],要remove两个吗?
写了下代码,有相等也remove.. From 1point 3acres bbs
  1. public class MergeIntervalsIII {
  2.         public static void main(String[] args) {
  3.                 List<Interval> intervals = new ArrayList<Interval>();
  4.                 intervals.add(new Interval(4, 8));
    . visit 1point3acres.com for more.
  5.                 intervals.add(new Interval(3, 5));
  6.                 intervals.add(new Interval(-1, 2));
  7.                 intervals.add(new Interval(10, 12));

  8.                 List<Interval> res = mergeIntervals(intervals);
  9.                 for (Interval interval : res) {
  10.                         System.out.println(interval.start + " " + interval.end);
  11.                 }
  12.         }
  13.        
  14.         static class Interval {
  15.                 int start;
  16.                 int end;

  17.                 Interval() {
  18.                         start = 0;
  19.                         end = 0;
  20.                 }

  21.                 Interval(int s, int e) {
  22.                         start = s;
  23.                         end = e;
  24.                 }. From 1point 3acres bbs
  25.         }
  26.        
  27.        
  28.         public static List<Interval> mergeIntervals(List<Interval> intervals) {
  29.                 List<Interval> res = new ArrayList<Interval>();. from: 1point3acres.com/bbs
  30.                 if (intervals == null || intervals.size() == 0) {
  31.                         return res;.1point3acres缃
  32.                 }
  33.                 Collections.sort(intervals, new Comparator<Interval>(){
  34.                         public int compare(Interval i1, Interval i2) {
  35.                                 if (i1.start == i2.start) {.鏈枃鍘熷垱鑷1point3acres璁哄潧
  36.                                         return i1.end - i2.end;
  37.                                 }
    . from: 1point3acres.com/bbs
  38.                                
  39.                                 return i1.start - i2.start;
  40.                         }
  41.                 });
  42.                 for (int i = 0; i < intervals.size(); i++) {
  43.                         if (res.size() == 0 || intervals.get(i).start > res.get(res.size() - 1).end) {
  44.                                 res.add(intervals.get(i));. more info on 1point3acres.com
  45.                         } else {
  46.                                 while (res.size() > 0 && intervals.get(i).start <= res.get(res.size() - 1).end) {
  47.                                         res.remove(res.size() - 1);
  48.                                 }.鏈枃鍘熷垱鑷1point3acres璁哄潧
  49.                         }. 1point3acres.com/bbs
  50.                 }. visit 1point3acres.com for more.
  51.                 . 1point3acres.com/bbs
  52.                 return res;
  53.         }
  54. }
复制代码
. 1point 3acres 璁哄潧
补充内容 (2015-12-3 04:56):
这个代码有错
回复 支持 反对

使用道具 举报

 楼主| tanpf5 发表于 2015-12-3 00:36:46 | 显示全部楼层
bobzhang2004 发表于 2015-12-3 00:31
interval,这个问题如果两个interval[2, 4], [4, 6],要remove两个吗?
写了下代码,有相等也remove.

我记得当时我问过这个问题,相等不算重叠,不删除
回复 支持 反对

使用道具 举报

bobzhang2004 发表于 2015-12-3 00:50:44 | 显示全部楼层
tanpf5 发表于 2015-12-3 00:36
我记得当时我问过这个问题,相等不算重叠,不删除
.鐣欏璁哄潧-涓浜-涓夊垎鍦
那相等的情况就得merge吧,[2, 4], [4, 6]变成[2, 6]?
回复 支持 反对

使用道具 举报

 楼主| tanpf5 发表于 2015-12-3 00:53:02 | 显示全部楼层
bobzhang2004 发表于 2015-12-3 00:50
那相等的情况就得merge吧,[2, 4], [4, 6]变成[2, 6]?
. 1point3acres.com/bbs
这题是去掉重叠的而已,不合并
回复 支持 反对

使用道具 举报

 楼主| tanpf5 发表于 2015-12-3 00:54:14 | 显示全部楼层
bobzhang2004 发表于 2015-12-3 00:50
那相等的情况就得merge吧,[2, 4], [4, 6]变成[2, 6]?

这题是去掉重叠的而已,不合并
回复 支持 反对

使用道具 举报

bobzhang2004 发表于 2015-12-3 04:57:16 | 显示全部楼层
根据楼主的意思,重新改了下代码,谢谢. Waral 鍗氬鏈夋洿澶氭枃绔,
  1. public class MergeIntervalsIII {.鏈枃鍘熷垱鑷1point3acres璁哄潧
  2.         public static void main(String[] args) {
  3.                 List<Interval> intervals = new ArrayList<Interval>();
  4.                 intervals.add(new Interval(4, 8));
  5.                 intervals.add(new Interval(3, 4));
  6.                 intervals.add(new Interval(-1, 2));-google 1point3acres
  7.                 intervals.add(new Interval(10, 12));
  8. .鐣欏璁哄潧-涓浜-涓夊垎鍦
  9.                 List<Interval> res = mergeIntervals(intervals);
  10.                 for (Interval interval : res) {
  11.                         System.out.println(interval.start + " " + interval.end);
  12.                 }
  13.         }
  14.        
  15.         static class Interval {. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  16.                 int start;
  17.                 int end;

  18.                 Interval() {. from: 1point3acres.com/bbs
  19.                         start = 0;
  20.                         end = 0;
  21.                 }
  22.                 Interval(int s, int e) {
  23.                         start = s;
  24.                         end = e;
  25.                 }.1point3acres缃
  26.         }
  27.        
  28.         /*
  29.                  intervals.add(new Interval(4, 8));
  30.                 intervals.add(new Interval(3, 5));. more info on 1point3acres.com
  31.                 intervals.add(new Interval(-1, 5));
  32.                 intervals.add(new Interval(10, 12));
  33.                 这个case 应该是返回(10, 12)
  34.          */
  35.         public static List<Interval> mergeIntervals(List<Interval> intervals) {
  36.                 List<Interval> res = new ArrayList<Interval>();. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  37.                 if (intervals == null || intervals.size() == 0) {
  38.                         return res;. From 1point 3acres bbs
  39.                 }
  40.                 Collections.sort(intervals, new Comparator<Interval>(){.鏈枃鍘熷垱鑷1point3acres璁哄潧
  41.                         public int compare(Interval i1, Interval i2) {
  42.                                 if (i1.start == i2.start) {
  43.                                         return i1.end - i2.end;
  44.                                 } . 1point3acres.com/bbs
  45.                                
    .1point3acres缃
  46.                                 return i1.start - i2.start;
  47.                         }
  48.                 });
  49.                 List<Interval> list = new ArrayList<Interval>();
  50.                 boolean[] isOverlap = new boolean[intervals.size()];. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  51.                 list.add(intervals.get(0));
  52.                 for (int i = 1; i < intervals.size(); i++) {. Waral 鍗氬鏈夋洿澶氭枃绔,
  53.                         if (intervals.get(i).start < list.get(list.size() - 1).end) {
  54.                                 isOverlap[i] = true;
  55.                                 isOverlap[i - 1] = true;
  56.                                 list.get(list.size() - 1).end = Math.max(list.get(list.size() - 1).end, intervals.get(i).end);. From 1point 3acres bbs
  57.                         } else {
  58.                                 list.add(intervals.get(i));. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  59.                         }. 1point3acres.com/bbs
  60.                 }
  61.                 for (int i = 0; i < intervals.size(); i++) {. from: 1point3acres.com/bbs
  62.                         if (!isOverlap[i]) {
  63.                                 res.add(intervals.get(i));
  64.                         } 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  65.                 }
  66.                 return res;
  67.         }
  68. }
复制代码
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-11 09:13

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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