《数据科学面试40+真题讲解》,K神本年度最后一次开课


一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推你去多家公司面试
Airbnb 数据科学职位
in analytics and inference
天天打游戏、照样领工资,
你要不要来?
把贵司招聘信息放这里
查看: 2369|回复: 13
收起左侧

11/23 Google Intern Interview

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

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

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

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

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

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

使用道具 举报

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
我也是昨天面的今天没消息 一直在安慰自己过节了可能慢一点 TAT

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

使用道具 举报

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

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

使用道具 举报

bobzhang2004 发表于 2015-12-3 00:31:28 | 显示全部楼层
interval,这个问题如果两个interval[2, 4], [4, 6],要remove两个吗?
写了下代码,有相等也remove.
  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));
  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);.1point3acres缃
  11.                 }
  12.         }
  13.        
  14.         static class Interval {
  15.                 int start;
  16.                 int end;

  17.                 Interval() {
  18.                         start = 0;
  19.                         end = 0;
  20.                 }. 1point3acres.com/bbs

  21.                 Interval(int s, int e) {. Waral 鍗氬鏈夋洿澶氭枃绔,
  22.                         start = s;
  23.                         end = e;
  24.                 }
  25.         }
  26.        
  27.         . visit 1point3acres.com for more.
  28.         public static List<Interval> mergeIntervals(List<Interval> intervals) {
  29.                 List<Interval> res = new ArrayList<Interval>();
  30.                 if (intervals == null || intervals.size() == 0) {
    . 1point 3acres 璁哄潧
  31.                         return res;. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  32.                 }
  33.                 Collections.sort(intervals, new Comparator<Interval>(){
  34.                         public int compare(Interval i1, Interval i2) {
  35.                                 if (i1.start == i2.start) {
  36.                                         return i1.end - i2.end;
  37.                                 }
  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) {. 1point3acres.com/bbs
  44.                                 res.add(intervals.get(i));
  45.                         } else {
  46.                                 while (res.size() > 0 && intervals.get(i).start <= res.get(res.size() - 1).end) { 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  47.                                         res.remove(res.size() - 1);
  48.                                 }
  49.                         }
  50.                 }
  51.                
  52.                 return res;
  53.         }
  54. }
复制代码

补充内容 (2015-12-3 04:56):
这个代码有错
回复 支持 反对

使用道具 举报

 楼主| tanpf5 发表于 2015-12-3 00:36:46 | 显示全部楼层
bobzhang2004 发表于 2015-12-3 00:31. 鍥磋鎴戜滑@1point 3 acres
interval,这个问题如果两个interval[2, 4], [4, 6],要remove两个吗?
写了下代码,有相等也remove.
. more info on 1point3acres.com
我记得当时我问过这个问题,相等不算重叠,不删除
回复 支持 反对

使用道具 举报

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]?

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

使用道具 举报

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

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

使用道具 举报

bobzhang2004 发表于 2015-12-3 04:57:16 | 显示全部楼层
根据楼主的意思,重新改了下代码,谢谢
  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));. 1point3acres.com/bbs
  5.                 intervals.add(new Interval(3, 4));-google 1point3acres
  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.         . from: 1point3acres.com/bbs
  14.         static class Interval {
  15.                 int start;
  16.                 int end;. Waral 鍗氬鏈夋洿澶氭枃绔,

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

使用道具 举报

本版积分规则

关闭

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

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-11-25 19:42

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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