一亩三分地论坛

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

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

攒RP!BB电面秒据+详细面经+求建议

[复制链接] |试试Instant~ |关注本帖
user123456 发表于 2016-3-23 07:41:08 | 显示全部楼层 |阅读模式

2016(1-3月) 码农类 博士 全职@Bloomberg - 网上海投 - 技术电面 |Failfresh grad应届毕业生

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

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

x
不知道是被黑了还是面试中犯了什么大的错误,简短地说,就是:1点开始面试,1.50结束电面,2.20收到据信,传说中的秒据。

背景:面试官应该是ABC,姓Wong(中文似乎是黄?),但似乎是比较“资深”的ABC,因为LinkedIn的语言里面只写了English,没写Chinese之类的,高中、本科似乎都是这边,也听不出来中国口音。我用的Java,但对方Java似乎不熟,因为我写arr.length的时候,他问我Java的array能直接这样获取size吗?全程没有debug(他没有让我run试试,我也忘了询问,所以不知道最后的代码是否有别的什么问题)

插曲:在2.00附近的时候,给面试官的LinkedIn发了个Thank you的InMail,就是一句简短的Thank you那种。他没过多久就回复了我说good luck之类的(当时还没有收到据信)

面经:
简历:问了PhD做的什么,感觉他不是很懂,没有深问。又问了提到的一个web development项目,说我在里面做了什么,有没有和别人合作,用的什么语言/技术什么的,同样没有深问。
. more info on 1point3acres.com
-------------------------------------------. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
题目:
1. reverse integer。花了不少时间和他确认一些细节,比如负数、溢出、末尾是0。最后,他说负数和溢出都返回-1吧。我开始没理解对,以为他说的只是当overflow才return -1。然后想的是把input先转化为正数,所以写了句:

    if(num == MIN) return -1;

他问为什么要这么做,我说因为我要转化为正数。然后说用一个flag标记这个数是不是负数,然后他说那num = -5怎么办,我说return的时候看flag,就return flag ? -res : res就行了。这时才知道他说-5要return -1,于是第一句就改过来了。
. from: 1point3acres.com/bbs
在考虑溢出的时候,我写的是:

    while(num > 0) {
        if(res > (MAX-num%10)/10) {
            return -1;
        }
        res = res*10 + num%10;
        num = num/10;
    }

然后他就问res > (MAX-num%10)/10这个为什么要 -num%10,我说有可能出现 MAX/10是OK的,但加上num%10这个digit就溢出了。他似乎不满意,就问我:如果当前是MAX,MAX+1会怎样。我说:MAX是011...11,所以加1变成:100...00,应该是MIN。他说,那就是负数,对吧。我说对。他说,那你觉得这里可以怎么简化?所以我就换成了下面这个:

    while(num > 0) {
        res = res*10 + num%10;
        num = num/10;
        if(res < 0) return -1;
   }. Waral 鍗氬鏈夋洿澶氭枃绔,

-------------------------------------------. 1point 3acres 璁哄潧
2. second max of an array of unique numbers.
先询问了如果是null或者长度小于2怎么办,他问我怎么办。我说可以exception或者返回那个元素。他问throw什么exception,我没有想好,就直接throw new Exception("Invalid Input!")。
. 鍥磋鎴戜滑@1point 3 acres
先装逼说了句一个intuitive的方法就是sort就行,但复杂度高。然后马上说应该可以用DP的思路,存两个元素,然后scan一遍。我写的是:

    int[] maxTwo = new int[] {nums[0], nums[1]};
. visit 1point3acres.com for more.且在这里强调说:maxTwo[0]是最大,maxTwo[1]是第二大。后来在他提醒下才知道这里有个bug。然后一个for循环从i=2开始扫一遍就行了。
. visit 1point3acres.com for more.
在这里,他还问为什么不用两个primitive,我说用primitive也可以,并且会更好。他问为什么,我说不用创建ojbect,并且primitive是存在heap里面的,读取更快。

他也问为什么不直接写

    int[] maxTwo = {nums[0], nums[1]};

两个写法有什么区别?我说实质是一样的,都要create and initiate object。. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴

后来我又说maxTwo可以初始化为MIN,这样从i=0扫一遍就行了。
. 1point3acres.com/bbs
-------------------------------------------
后记:面完30分钟收到据信,还是挺伤感的。就又给面试官发LinkedIn求feedback。他没过多久回复我说一般不会面试后联系被面试者,但还是会给我说一些本来打算在面试过程中说的,但当时没时间了。然后很快加了一条disclaimer说所说的东西和公司无关,我说完全理解。-google 1point3acres

等了半个小时他没消息,我就说你也可以邮件给我或者电话给我。结果又过了半个小时,他说after second thought,不给我任何反馈了。。。.1point3acres缃

求分析下,大家觉得我可能挂在什么地方?以后需要注意什么?我女友当时在身边,说听上去我像不会做似的,而且问了太多问题(确认细节)。但我想的是:我不是在他没有提醒的前提下题目都做出来了吗?. visit 1point3acres.com for more.

评分

2

查看全部评分

malc 发表于 2016-3-23 08:12:01 | 显示全部楼层
同情楼主!贴个我以前写的reverse integer 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  1. int reverse(int x) {
  2.         long long res = 0;
  3.         while(x) {. Waral 鍗氬鏈夋洿澶氭枃绔,
  4.             res = res*10 + x%10;
  5.             x /= 10;
  6.         }
  7.         return (res<INT_MIN || res>INT_MAX) ? 0 : res;
  8.     }
复制代码
.鐣欏璁哄潧-涓浜-涓夊垎鍦
另外,第二题不要new,new 出来的对象分配在堆上,有开销,直接写分配在栈上,速度快,而且这里不存在数组的扩展,不用new
回复 支持 2 反对 0

使用道具 举报

chenyuhaohy 发表于 2016-3-23 07:52:05 | 显示全部楼层
感觉这两题都挺easy的,所以面试官可能觉得要直接秒了才能过吧。问各种corner case是好事,但是我以前一上来就问太多,影响了自己后面做题。我觉得是可以先讲一个general algorithm,然后再慢慢的修改来处理各种corner case.

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

 楼主| user123456 发表于 2016-3-23 07:55:23 | 显示全部楼层
chenyuhaohy 发表于 2016-3-23 07:52
感觉这两题都挺easy的,所以面试官可能觉得要直接秒了才能过吧。问各种corner case是好事,但是我以前一上 ...

“先讲一个general algorithm,然后再慢慢的修改来处理各种corner case” 现在想想,确实如此。受教了!
回复 支持 反对

使用道具 举报

chenyuhaohy 发表于 2016-3-23 08:21:54 | 显示全部楼层
[quote][url=forum.php?mod=redirect

但是general algorithm只能讲,最多写pseudocode,千万不能一上来直接general algorithm代码写出来
回复 支持 反对

使用道具 举报

 楼主| user123456 发表于 2016-3-23 08:57:49 | 显示全部楼层
[quote][url=forum.php?mod=redirect. 1point 3acres 璁哄潧
-google 1point3acres
堆栈那个以前确实不知道,受教了!
回复 支持 反对

使用道具 举报

searim 发表于 2016-3-23 10:16:18 | 显示全部楼层
面试官问应该throw什么exception应该是想考此处适用的具体哪种exception吧,这里应该答 IllegalArguementException比较好
回复 支持 反对

使用道具 举报

 楼主| user123456 发表于 2016-3-23 11:15:43 | 显示全部楼层
searim 发表于 2016-3-23 10:16
面试官问应该throw什么exception应该是想考此处适用的具体哪种exception吧,这里应该答 IllegalArguementEx ...

嗯,他肯定是想考下我的。Exception确实不熟!
回复 支持 反对

使用道具 举报

lela900900 发表于 2016-3-23 11:42:28 | 显示全部楼层
谢谢lz
lz cs phd?
回复 支持 反对

使用道具 举报

 楼主| user123456 发表于 2016-3-23 11:44:50 | 显示全部楼层

EE PhD      
回复 支持 反对

使用道具 举报

ok123 发表于 2016-3-23 15:37:31 | 显示全部楼层
求Kth max 要用quicksort的partition。时间复杂度是O(logN)

补充内容 (2016-3-24 06:41):
我说错了,quick select 还是 O(N)
回复 支持 反对

使用道具 举报

 楼主| user123456 发表于 2016-3-23 22:15:40 | 显示全部楼层
ok123 发表于 2016-3-23 15:37
求Kth max 要用quicksort的partition。时间复杂度是O(logN)

原数组没有sort的话,最好的方法也只能O N吧?
回复 支持 反对

使用道具 举报

ok123 发表于 2016-3-24 06:40:21 | 显示全部楼层
user123456 发表于 2016-3-23 22:15
原数组没有sort的话,最好的方法也只能O N吧?

我说错了。quick select 也是 O(N)
回复 支持 反对

使用道具 举报

afrozan 发表于 2016-3-24 06:52:10 | 显示全部楼层
很简单的题做了50分钟才是原因吧
回复 支持 反对

使用道具 举报

 楼主| user123456 发表于 2016-3-24 06:57:20 | 显示全部楼层
afrozan 发表于 2016-3-24 06:52
很简单的题做了50分钟才是原因吧

嗯,这个是很有可能。但其实我基本没有花时间思考,因为都做过。大部分时间都在确认第一题的细节上。over doing it了
回复 支持 反对

使用道具 举报

KlausQi 发表于 2016-3-24 07:00:02 | 显示全部楼层
BB现在招人的主要标准是看性别……
回复 支持 反对

使用道具 举报

 楼主| user123456 发表于 2016-3-24 07:01:43 | 显示全部楼层
KlausQi 发表于 2016-3-24 07:00
BB现在招人的主要标准是看性别……

哈哈
回复 支持 反对

使用道具 举报

daykills 发表于 2016-4-2 13:18:05 | 显示全部楼层
感觉LinkedIn联系面试官有点画蛇添足,甚至是败笔
回复 支持 反对

使用道具 举报

何打发123 发表于 2016-8-17 05:41:18 | 显示全部楼层
感谢楼主的分享~ patpat 我觉得会不会是问细节太多了 面试官有点烦了0.0 以后code 先说一个大概的algorithm 然后简单问几个case  code的过程中再问几个~  不过请问楼主 面试官的名字在哪里看~? refer的人看得到吗?~
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-9 06:27

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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