推荐:数据科学课程和书籍清单以及培训讲座


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

一亩三分地官方iOS手机应用下载
查看: 1526|回复: 9
收起左侧

谷歌11.30 hanouts面试

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

2015(10-12月) 码农类 硕士 全职@Google - 网上海投 - 技术电面 |Otherfresh grad应届毕业生

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

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

x
刚结束的电面,遇到的是一个白人小哥。
1. 问ArrayList和LinkedList的区别. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
2. 一个程序跑了很多次每次的结果不一样,问可能的原因. 鍥磋鎴戜滑@1point 3 acres
3. 假设你在一个地铁站(地铁站有纸质的时刻表),手上只有一个stopwatch,问如何确定现在的时间?然后写算法。。。。


lz太笨,最后一个问题花了好长时间,最后在小哥的提示之下做出来了。。交了之后发现有bug。。感觉要跪了。。。。求给一个二面机会T T. 鍥磋鎴戜滑@1point 3 acres
Wizmann 发表于 2015-11-30 23:26:23 | 显示全部楼层
1. 数组 vs 链表? (不懂Java,大概就是这个东西吧)

2.
(1) 内部机制导致结果不一致
a. 故意的随机.鏈枃鍘熷垱鑷1point3acres璁哄潧
b. 无关紧要的边界条件
(2) 程序设计缺陷导致结果不一致
a. 堆栈变量未初始化. more info on 1point3acres.com
b. 读写非法的内存
c. 忽略了可能的边界条件或者corner cases. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴

3. 由时刻表预处理出列车每两趟之间的时间,然后用stopwatch统计K次列车间的时间,然后用KMP匹配一下就好。
回复 支持 反对

使用道具 举报

 楼主| ivana 发表于 2015-11-30 23:52:22 | 显示全部楼层
Wizmann 发表于 2015-11-30 23:26.1point3acres缃
1. 数组 vs 链表? (不懂Java,大概就是这个东西吧)
. 鍥磋鎴戜滑@1point 3 acres
2.

沙发好厉害!!!
第二题只想得到random number或者multi-threading,
第三题用了最笨的brute-force查找pattern。。
回复 支持 反对

使用道具 举报

aammyytt 发表于 2015-12-1 00:19:22 | 显示全部楼层
第二題還有可能這樣解答 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
1. Race Conditions
2.使用外部的變量,這個外部變量可能被別的程序修改
3.可能用到了共享的內存
4.mamory leak
5.可能依賴其他程序的輸出
6.也許用到了外部的API,調用失敗
回复 支持 反对

使用道具 举报

bobzhang2004 发表于 2015-12-1 00:45:55 | 显示全部楼层
请问楼主输入输出是 public  Time (List<Time> timetable, List<Integer> gaps) ?
回复 支持 反对

使用道具 举报

Wizmann 发表于 2015-12-1 01:49:17 | 显示全部楼层
aammyytt 发表于 2015-12-1 00:19
第二題還有可能這樣解答
1. Race Conditions. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
2.使用外部的變量,這個外部變量可能被別的程序修改

果然我脑洞不够大。。。这种东西很难说全啊感觉。。。
回复 支持 反对

使用道具 举报

snowwolf 发表于 2015-12-1 02:10:16 | 显示全部楼层
第三题不太懂啥意思,第一趟列车来的时候我启动stopwatch然后就看stopwatch不就可以知道时间了吗?
回复 支持 反对

使用道具 举报

 楼主| ivana 发表于 2015-12-1 03:22:01 | 显示全部楼层
bobzhang2004 发表于 2015-12-1 00:45
请问楼主输入输出是 public  Time (List timetable, List gaps) ?

第三题面试官开始只给了一个场景,就是在地铁站有一个秒表,并没有给输入输出,有点像脑经急转弯的形式

最后写code的时候我给出的解法输入输出就是public Time (List timetable, List gaps)了
回复 支持 反对

使用道具 举报

 楼主| ivana 发表于 2015-12-1 03:26:06 | 显示全部楼层
snowwolf 发表于 2015-12-1 02:10
第三题不太懂啥意思,第一趟列车来的时候我启动stopwatch然后就看stopwatch不就可以知道时间了吗?

因为并不知道第一趟列车来的时候是几点呀~~没有电子显示牌= =
回复 支持 反对

使用道具 举报

bobzhang2004 发表于 2015-12-1 04:11:51 | 显示全部楼层
写了下代码,欢迎指教。
  1. public class MetroTime {-google 1point3acres
  2.        
  3.         static class Time {
  4.                 int hour; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  5.                 int min;
  6.                 public Time(int hour, int min) {
  7.                         this.hour = hour;. visit 1point3acres.com for more.
  8.                         this.min = min;. 1point 3acres 璁哄潧
  9.                 }
  10.         }.1point3acres缃
  11.        
  12.         public static Time getCurrentTime(Time[] times, int[] gaps) {
  13.                 int[] arr = getGaps(times);
  14.                 List<Integer> res = new ArrayList<Integer>();
  15.                 for (int i = 0; i < times.length - gaps.length + 1; i++) {-google 1point3acres
  16.                         int j = 0;
  17.                         for (; j < gaps.length; j++) {
  18.                                 if (arr[i + j] != gaps[j]) {-google 1point3acres
  19.                                         break;
  20.                                 }
  21.                         }. 1point3acres.com/bbs
  22.                         if (j == gaps.length) {
  23.                                 res.add(i + j - 1);
  24.                         }
  25.                 }
  26.                
  27.                 return res.size() == 1? times[res.get(0) + 1]: null;
  28.         }


  29.         private static int[] getGaps(Time[] times) {
  30.                 int[] res = new int[times.length - 1];
  31.                 for (int i = 0; i < times.length - 1; i++) {
  32.                         res[i] = (times[i + 1].hour * 60+ times[i + 1].min) - ( times[i].hour * 60 + times[i].min);. visit 1point3acres.com for more.
  33.                 }
  34.                 return res;
  35.         }
  36.        
  37.         public static void main(String[] args) {. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  38.                 Time[] times = {new Time(10, 5), new Time(10, 10), new Time(10, 20), new Time(10, 30), new Time(10, 45)};
  39.                 int[] gaps = {10, 10};
  40.                 Time time = getCurrentTime(times, gaps);
  41.                 System.out.println(time.hour + " : " + time.min);
  42.         }

  43. }
复制代码
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-8-22 23:12

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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