一亩三分地论坛

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

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

Google电面,半小时前出炉

[复制链接] |试试Instant~ |关注本帖
lordofone 发表于 2015-9-12 05:47:50 | 显示全部楼层 |阅读模式

2015(7-9月) 码农类 本科 全职@Google - 网上海投 - 技术电面 |Otherfresh grad应届毕业生

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

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

x
迟到10-15分钟。。上来扯resume,说了下J2EE,然后我提到spring 4丧心病狂,他表示何不自己看源码。。。
扯完,问喜欢的语言;果断JAVA;看到有提到C++,就问java为何不用free,我。因为有自动的GC?他说你知道怎么手动呼叫GC么?我说不知道,他说没事。
他又问,你会multithread?我说会一点(右手点开API thread),他问我用java5还是6?我说8。。他被打出了穿刺暴击,然后说了句,算了不问你了

这时时间过去了30分钟。。

题目是binary watch:上边是小时,下边是分钟,最左边最significant,最右边为1。给你数字n,return所有可能的时间,以string为表达形式

binary watch

binary watch


E.G. 给你1,那return:{0:00,1:00,2:00,4:00,8:00,0:01.........}

.1point3acres缃他丢下题,就拿水去了。。我孤独的写起了暴力DFS,和leetcode里那几个暴力DFS一样,搞个vector<vector<Integer>> result,一个cur,一个step,一个给你的num。。。然后气氛就搞起来了

我3分钟写完helper function: public vec<String> convert(Vec<Vec<Int>>), 5分钟写完 DFS。。。然后剩下的所有时间在和他争论,为何我那个DFS枚举是对的,他举出了N个test case,全部在我说话之前被他自己否定了。。
最后他没办法,问了我一句。。你真的确定这东西对么? 我说:地球上哪个DFS我没写过?那个leetcode的permutation II, 比你不知道高到哪里去了。。。 他:GG. visit 1point3acres.com for more.
. 1point 3acres 璁哄潧
然后问问题环节,然后我就来地里了

PS:挂了电话,我突然发现,枚举有bug。。尼玛2^6>60。。。有几个枚举要去掉。如果因为这个杯具了,我就投诉说他迟到,哼

. Waral 鍗氬鏈夋洿澶氭枃绔,
. 1point 3acres 璁哄潧

补充内容 (2015-9-12 06:26):
楼下有朋友说看不到图片:http://www.slipperybrick.com/wp-content/uploads/2007/12/led_binary_watch.jpg
顺便膜拜楼下大神代码。。. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
-google 1point3acres
补充内容 (2015-9-12 11:07):
题目里给的唯一一个parameter n是亮灯的个数,比如图中有6盏灯(上2,下4)。 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
我图下给的例子有bug,你们自己理解一下吧。。

评分

6

查看全部评分

本帖被以下淘专辑推荐:

Linzertorte 发表于 2015-9-12 06:18:11 | 显示全部楼层
一亩三分地严打"顶""好贴""收藏了"之类的垃圾回复帖!被警告三次,系统会自动封杀ID!

想支持楼主,请点击帖子下方的"好苗""分享""收藏"键,酌情给楼主加大米(系统不扣你自己的分)。
积分不够看不了帖子,请参考论坛导航里的"帮助","新手提纲"里有攒积分指南
  1. #include<iostream>
  2. #include<string>. From 1point 3acres bbs
  3. #include<vector>.鏈枃鍘熷垱鑷1point3acres璁哄潧
  4. using namespace std;. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  5. vector<string> watch(int n){
  6.   int h,m;
  7.   vector<string> ans;
  8.   char buf[10];
  9.   while(true){
  10.     string s="";.1point3acres缃
  11.     h = n>>6, m = n&(0x3f);
  12.     if(h>24) break;
  13.     if(h<24 && m<60 || h==24 && m==0) sprintf(buf,"%02d:%02d",h,m), s = buf;
  14.     n<<=1;
  15.     if(s!="") ans.push_back(s);
  16.   }
  17.   return ans;
  18. }. 1point3acres.com/bbs
  19. int main(){
  20.   vector<string> ans = watch(1);
  21.   for(int i=0;i<ans.size();i++)
  22.     cout<<ans[i]<<endl;
  23. }
复制代码

补充内容 (2015-9-12 06:21):
n=0时死循环
回复 支持 3 反对 0

使用道具 举报

 楼主| lordofone 发表于 2015-9-12 06:22:38 | 显示全部楼层
Linzertorte 发表于 2015-9-12 06:18. from: 1point3acres.com/bbs
一亩三分地严打"顶""好贴""收藏了"之类的垃圾回复帖!被警告三次,系统会自动封杀ID!

想支持楼主,请点 ...
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
给大神跪了,回去细细琢磨
回复 支持 反对

使用道具 举报

M_Jason 发表于 2015-9-12 06:23:55 | 显示全部楼层
表示看不到图片啊,楼主,可否再描述一遍题呢?
回复 支持 反对

使用道具 举报

 楼主| lordofone 发表于 2015-9-12 06:24:31 | 显示全部楼层
M_Jason 发表于 2015-9-12 06:23
表示看不到图片啊,楼主,可否再描述一遍题呢?

等等我上图片链接
回复 支持 反对

使用道具 举报

purplesky85 发表于 2015-9-12 07:59:06 | 显示全部楼层
输入是1的话为什么会有0:00, 不是应该输入0才是0:00吗
回复 支持 反对

使用道具 举报

blactangeri 发表于 2015-9-12 08:01:56 | 显示全部楼层
lz你java很nb啊
回复 支持 反对

使用道具 举报

 楼主| lordofone 发表于 2015-9-12 08:10:40 | 显示全部楼层

不不不,只是用的比较多,第一个学的语言,用的比较熟练而已
回复 支持 反对

使用道具 举报

 楼主| lordofone 发表于 2015-9-12 08:11:27 | 显示全部楼层
purplesky85 发表于 2015-9-12 07:59
输入是1的话为什么会有0:00, 不是应该输入0才是0:00吗

你问的很好。。。我写错了,没0:00
回复 支持 反对

使用道具 举报

M_Jason 发表于 2015-9-12 09:28:54 | 显示全部楼层
lordofone 发表于 2015-9-12 06:24
等等我上图片链接

楼主,求图片链接~
回复 支持 反对

使用道具 举报

 楼主| lordofone 发表于 2015-9-12 09:31:06 来自手机 | 显示全部楼层
M_Jason 发表于 2015-9-12 09:28
楼主,求图片链接~
. Waral 鍗氬鏈夋洿澶氭枃绔,
我在帖子里补充了啊。。
回复 支持 反对

使用道具 举报

M_Jason 发表于 2015-9-12 09:32:16 | 显示全部楼层
lordofone 发表于 2015-9-12 09:31.鏈枃鍘熷垱鑷1point3acres璁哄潧
我在帖子里补充了啊。。

哦哦,抱歉,直接点击的系统提醒,就直接显示到最底下了,没看到上面的补充,sorry~
回复 支持 反对

使用道具 举报

M_Jason 发表于 2015-9-12 09:40:51 | 显示全部楼层
Linzertorte 发表于 2015-9-12 06:18.鐣欏璁哄潧-涓浜-涓夊垎鍦
一亩三分地严打"顶""好贴""收藏了"之类的垃圾回复帖!被警告三次,系统会自动封杀ID!.鐣欏璁哄潧-涓浜-涓夊垎鍦

想支持楼主,请点 ...

好。。。。牛逼的代码!要是面试的时候能敲出这种代码真是打面试官的脸啊!!
回复 支持 反对

使用道具 举报

will_ym 发表于 2015-9-12 10:55:41 | 显示全部楼层
楼主那个n到底是什么意思啊?按照大神那个解法n是表盘代表的最小数字??? 比如如果n = 3的话,那么就有00...011, 00....0110, 00....1100, ...
但是我怎么感觉你的解法里面n是表上有几个1呢, 比如n = 3的话,那么就有000....111, 0000...10101, .....鏈枃鍘熷垱鑷1point3acres璁哄潧
麻烦楼主透漏一下哪种是题意?
回复 支持 反对

使用道具 举报

 楼主| lordofone 发表于 2015-9-12 11:08:19 | 显示全部楼层
will_ym 发表于 2015-9-12 10:55
楼主那个n到底是什么意思啊?按照大神那个解法n是表盘代表的最小数字??? 比如如果n = 3的话,那么就有00 ...
.鐣欏璁哄潧-涓浜-涓夊垎鍦
谢谢指出,n代表有几盏灯亮着,我补充到帖子里了
回复 支持 反对

使用道具 举报

Linzertorte 发表于 2015-9-12 11:31:29 | 显示全部楼层
lordofone 发表于 2015-9-12 11:08
谢谢指出,n代表有几盏灯亮着,我补充到帖子里了
. 鍥磋鎴戜滑@1point 3 acres
..那我的代码错了。
回复 支持 反对

使用道具 举报

snail_914 发表于 2015-9-13 04:21:18 | 显示全部楼层
楼主这样应该ok吧?
  1. class Solution{. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  2.     ArrayList<String> getAllTime(int n){. visit 1point3acres.com for more.
  3.         ArrayList<String> res=new ArrayList();
  4.         if (n>=9) return res;
  5.         for (int i=0; i<=n&&i<=4; i++){ 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  6.             if (n-i>6) continue;
  7.             //n-i: number of one for minute, 6-n+i: number of zero for minute. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  8.             ArrayList<Integer> mins=new ArrayList();
  9.             getTime(n-i, 6-n+i, 0, 60, mins);
  10.             //i: number of one for hour, 4-i: number of zero for hour
  11.             ArrayList<Integer> hours=new ArrayList();
  12.             getTime(i, 4-i, 0, 12, hours);
  13.             for (int hour : hours){
  14.                 for (int min: mins){
  15.                     String tmp=((hour<10?"0":"")+hour+(min<10?"0":"")+min);
  16.                     res.add(tmp);
  17.                     System.out.println(tmp);
  18.                 }         
  19.             }     
  20.         }   
  21.         return res;. more info on 1point3acres.com
  22.     }
  23.     void getTime(int oneNB, int zeroNB, int currTime, int maxVal, ArrayList<Integer> times){
  24.         if (zeroNB==0&&oneNB==0&&currTime<=maxVal)  times.add(currTime);            
  25.         if (oneNB>0){
  26.             currTime=currTime<<1; currTime++;
  27.             getTime(oneNB-1, zeroNB, currTime, maxVal, times);. 1point 3acres 璁哄潧
  28.             currTime=currTime>>1;
  29.         }
  30.         if (zeroNB>0){
  31.             currTime=currTime<<1;.鐣欏璁哄潧-涓浜-涓夊垎鍦
  32.             getTime(oneNB, zeroNB-1, currTime, maxVal, times);. from: 1point3acres.com/bbs
  33.             currTime=currTime>>1;
  34.         }
  35.     }
  36. }
复制代码
回复 支持 反对

使用道具 举报

flexwang 发表于 2015-9-13 09:54:06 | 显示全部楼层
Linzertorte 发表于 2015-9-12 06:18
一亩三分地严打"顶""好贴""收藏了"之类的垃圾回复帖!被警告三次,系统会自动封杀ID!

想支持楼主,请点 ...

运行了几个case 结果都不对啊. 1point3acres.com/bbs
n不是代表几盏灯亮吗?所以就是几个1bit的意思?
回复 支持 反对

使用道具 举报

littlexiami 发表于 2015-9-13 11:32:04 | 显示全部楼层
过两天也要面google,给楼主打个气
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-6 18:48

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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