一亩三分地论坛

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

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

至今仍耿耿于怀的UBER店面

[复制链接] |试试Instant~ |关注本帖
yjfox 发表于 2015-10-31 11:37:37 | 显示全部楼层 |阅读模式

2015(10-12月) 码农类 硕士 全职@Uber - 内推 - 技术电面 |Fail在职跳槽

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

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

x
看名字是华裔,好像是infrastructure组的。没有遇到面筋题不过也不难-google 1point3acres
第一题, binary tree diameter,简单吧不多说了。一开始我给看成了求tree width,啪啪写好发现看错题了,又啪啪改好,基本算秒,大概描述了下代码逻辑,大哥总结了句erygood
第二题,hashcode a class,就是重写所有class从object继承来的hashcode(),不复杂(复杂的也没法短时间扣出来), 调用各个field自身的hashcode(),乘以prime(一般设32)相加,不知道各位大神还有什么其他更好更专业的implement求教。 反正面试官大哥说ok,我还问了要不要我implement下string的hashcode()因为他给的这个class只有double和string两个类型:
class xxx {
    Double d;. from: 1point3acres.com/bbs
    String str1;
-google 1point3acres    String str2;
}
大哥说不用了,然后问了问问题时间就到了(因为他迟到了近十分钟)。. 1point 3acres 璁哄潧
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
四天后在我两封催信下催出了 个 rej,现在仍耿耿于怀,想知道why???有Uber大牛给解释下不??

最后, 穷人 加分阿!!!!

. Waral 鍗氬鏈夋洿澶氭枃绔,
. more info on 1point3acres.com

补充内容 (2015-10-31 11:41):
sorry手误,prime 31(毫无疑问不可能是32,必须是质数)

评分

2

查看全部评分

leixiang5 发表于 2015-10-31 13:48:34 | 显示全部楼层
也许是跟你一起的面试者都很猛吧。
回复 支持 反对

使用道具 举报

snowwolf 发表于 2015-10-31 13:49:26 | 显示全部楼层
最近UBER好像bar巨高。不一定是面试官坑你。比如可能以前只要3分就给onsite现在需要3.5了,而面试官打分可能还维持原先的标准。
回复 支持 反对

使用道具 举报

will_ym 发表于 2015-10-31 22:08:37 | 显示全部楼层
Patpat 楼主 后面还有更好的
回复 支持 反对

使用道具 举报

micro_long 发表于 2015-11-1 02:03:01 | 显示全部楼层
说到楼主的hashcode这个题目, hash函数的结果有个要求是Uniformly distribute, 一般的做法是即使你的 输入很小, 最后hash的结果也应该要返回一个很大的数, 然后mod到桶的size里面, 类似Java 的hashcode function是 (i*31^(n-i))求和,  结果如果只乘以 prime 可能是不行的,  会造成你的hash结果非常小. 举个例子你的hash有10000个桶 当你的输入值都偏小的话, 你生成的结果只能hash到前面1000个里面去,可能不太好.

当然我觉得这个不能算问题, 楼主的回答已经很好了,完全应该pass 电面的.
回复 支持 反对

使用道具 举报

 楼主| yjfox 发表于 2015-11-1 03:52:43 | 显示全部楼层
micro_long 发表于 2015-11-1 02:03
说到楼主的hashcode这个题目, hash函数的结果有个要求是Uniformly distribute, 一般的做法是即使你的 输入 ...

谢谢肯定,我的implement是
result  = 1;
result = result * prime + flied1.hashCode();
result = result * prime + filed2.hashCode();
.......
可能我 上文描述的不太好。

这个方法也是eclipse默认重写hashCode()的方法,你说的这个也对,更适合应用于需要map的时候
回复 支持 反对

使用道具 举报

lcl3356897 发表于 2015-11-1 04:23:38 | 显示全部楼层
可能最近招满了吧
现在官网已经看不到 University-2016 这个职位了
回复 支持 反对

使用道具 举报

304671127 发表于 2015-11-1 08:12:53 | 显示全部楼层
想问下楼主hashcode() a class 是把他当做一个object吗 比如XXX a = new XXX(); XXX b = new XXX();
如果equals的话 必须double 相同 string 也相同对吧?
还有就是我之前也被问过hashcode的问题,我看了一些资料有的说是31,有的说是33, 33不是prime,但是在九章算法课里面和lintcode题都是说用33,这些选择到底有什么trade off呢。之前就因为这个挂过一次,所以也比较介怀。
回复 支持 反对

使用道具 举报

wen587 发表于 2015-11-1 11:00:43 | 显示全部楼层
想问一下lz,hashcode() 是指把class当做object吗,比如XXX a = new XXX(); XXX b = new XXX(); 如果a = b就是他们里面的double数已经string都相等,就是实现功能equals。
还有一个疑问,就是lz用的是31作为乘数,我在九章和一些网站上看他们是用33,不是prime,想问下这之间的区别。Lintcode上有一个hashing题好像就是用一个string的字符的ascii数*33^位置,之前面试遇到过这种题,然后跪了。想具体请教一下。
回复 支持 反对

使用道具 举报

wen587 发表于 2015-11-2 01:42:34 | 显示全部楼层
为啥我之前发的帖子都要审核,一直没出现。

补充内容 (2015-11-2 01:44):
想问下lz 是把xxx作为一个object来看吗比如xxx a =new xxx; xxx b = new xxx;然后hashcode应该怎么表示double和两个string呢,关于乘数,我看到一些是31,lintcode和九章说的是33,想问一下之间的区别,之前挂. 鍥磋鎴戜滑@1point 3 acres

补充内容 (2015-11-2 02:02):
假设a的field1.hashcode() = 31, field2.hashcode() = 0;
b的field1.hashcode() = 0, field2.hashcode() = 31*31;
这样的话 a和b的hashcode() 就一样了,都等于31 * 62;
回复 支持 反对

使用道具 举报

 楼主| yjfox 发表于 2015-11-2 02:38:35 | 显示全部楼层
wen587 发表于 2015-11-2 01:42
为啥我之前发的帖子都要审核,一直没出现。. 鍥磋鎴戜滑@1point 3 acres
. more info on 1point3acres.com
补充内容 (2015-11-2 01:44):

我个人倾向31把,需要用质数减少collision。eclipse也是用的31

你说的情况是collision的一种,当然可能的,但hashmap也会有collision,它是怎么处理的呢?
回复 支持 反对

使用道具 举报

wen587 发表于 2015-11-2 08:48:17 | 显示全部楼层
yjfox 发表于 2015-11-2 02:38
我个人倾向31把,需要用质数减少collision。eclipse也是用的31

你说的情况是collision的一种,当然可 ...

嗯 我知道了  open addressing和 separate chaining
回复 支持 反对

使用道具 举报

gloria_wwj 发表于 2015-11-4 10:53:39 | 显示全部楼层
面试非常看重与面试官的交流,做题前肯定先clarify,然后说思路,面试官认可后才开始写代码
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-3 17:48

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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