一亩三分地论坛

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

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

WePay OA Java 同学test case过不去的猜想

[复制链接] |试试Instant~ |关注本帖
什么都有 发表于 2015-10-9 11:48:32 | 显示全部楼层 |阅读模式

2015(10-12月) 码农类 硕士 全职@WePay - 网上海投 - 在线笔试 |Otherfresh grad应届毕业生

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

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

x
刚做完 WePay 的 OA 跟地里其他链接里说的题目一样,就那三题。
.鏈枃鍘熷垱鑷1point3acres璁哄潧
传送门: http://www.1point3acres.com/bbs/thread-139548-1-1.html

但是我看了不少同学有test case过不了,然后我发现他们的问题可能出在hash function上。
大部分出错的同学的index 都是 key.hashcode() % size。 但是根据我在coursera上Algorithm的课件上来说,这样是错误的。. From 1point 3acres bbs
正确的应该是 (key.hashcode() & 0x7fffffff) % size 因为java 负数的mod好像会算出不正确的结果。.1point3acres缃
我把课件也贴出来你们看一看。

QQ20151008-4@2x.png

评分

1

查看全部评分

diefunction 发表于 2015-10-10 05:16:34 | 显示全部楼层
我就写了个key.hashcode() % size, 然后过了。我周围小伙伴都挂了OA。 test case 也都是全过。。不知道是不是线下有别的test
回复 支持 反对

使用道具 举报

 楼主| 什么都有 发表于 2015-10-10 06:00:02 | 显示全部楼层
diefunction 发表于 2015-10-10 05:16. Waral 鍗氬鏈夋洿澶氭枃绔,
我就写了个key.hashcode() % size, 然后过了。我周围小伙伴都挂了OA。 test case 也都是全过。。不知道是 ...

我也过了,他们说要考察cleaningness什么的。会不会是因为coding style的问题?
回复 支持 反对

使用道具 举报

diefunction 发表于 2015-10-10 07:21:33 | 显示全部楼层
什么都有 发表于 2015-10-10 06:00
我也过了,他们说要考察cleaningness什么的。会不会是因为coding style的问题?

应该不会。因为有个大神的代码写得比我的好看百倍 ORZ; 也可能是运气问题吧。我觉得他家bar不低于google
回复 支持 反对

使用道具 举报

 楼主| 什么都有 发表于 2015-10-10 11:05:01 | 显示全部楼层
diefunction 发表于 2015-10-10 07:21
应该不会。因为有个大神的代码写得比我的好看百倍 ORZ; 也可能是运气问题吧。我觉得他家bar不低于google
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
我觉得也是,看了面经貌似挺凶残的,加油啊。
回复 支持 反对

使用道具 举报

hj867955629 发表于 2015-10-10 12:33:12 | 显示全部楼层
表示test case全过,也挂了。。。我也是%size
回复 支持 反对

使用道具 举报

 楼主| 什么都有 发表于 2015-10-10 13:51:23 | 显示全部楼层
hj867955629 发表于 2015-10-10 12:33
表示test case全过,也挂了。。。我也是%size

Patpat 真心不知道他们是什么评判标准
回复 支持 反对

使用道具 举报

googlerr 发表于 2016-2-11 13:57:19 | 显示全部楼层
请问hashCode()不需要自己写吧?
回复 支持 反对

使用道具 举报

 楼主| 什么都有 发表于 2016-2-11 14:14:42 | 显示全部楼层
googlerr 发表于 2016-2-11 13:57
请问hashCode()不需要自己写吧?

我觉得应该不用
回复 支持 反对

使用道具 举报

googlerr 发表于 2016-2-11 16:10:08 | 显示全部楼层

嗯,看到别人贴的,似乎是用Java自带的。谢谢!
回复 支持 反对

使用道具 举报

Thunder_up 发表于 2016-2-19 13:06:29 | 显示全部楼层

请问楼主当时有些rehash,load factor那些么
回复 支持 反对

使用道具 举报

Thunder_up 发表于 2016-2-19 13:06:57 | 显示全部楼层
.鏈枃鍘熷垱鑷1point3acres璁哄潧
请问楼主当时有写rehash, load factor那些么?
回复 支持 反对

使用道具 举报

 楼主| 什么都有 发表于 2016-2-19 14:40:59 | 显示全部楼层
Thunder_up 发表于 2016-2-19 13:06. 鍥磋鎴戜滑@1point 3 acres
请问楼主当时有写rehash, load factor那些么?

没有,我觉得不需要
回复 支持 反对

使用道具 举报

Thunder_up 发表于 2016-2-19 14:52:23 | 显示全部楼层
什么都有 发表于 2016-2-19 14:40
没有,我觉得不需要
. Waral 鍗氬鏈夋洿澶氭枃绔,
楼主你还记得你的数据结构是用Entry<K, V> table[]这种还是ArrayList<LinkedList<Entry<K, V>>> array这种呢?貌似table[]这种比较教科书一些。不过就是不知道wepay公司的engineer喜欢那个多点。。谢谢楼主啊
回复 支持 反对

使用道具 举报

Thunder_up 发表于 2016-2-19 14:53:56 | 显示全部楼层
什么都有 发表于 2016-2-19 14:40
没有,我觉得不需要

楼主咱们是校友哈,我是师弟
回复 支持 反对

使用道具 举报

googlerr 发表于 2016-2-19 23:59:40 | 显示全部楼层
Java 8里面,HashMap的HashCode在取模前先进行了一个位运算,如下:
  1. static final int hash(Object key) {
  2.     int h;
  3.     return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);.鏈枃鍘熷垱鑷1point3acres璁哄潧
  4. }
复制代码
所以有没有可能是也需要先进行类似的预处理?
回复 支持 反对

使用道具 举报

 楼主| 什么都有 发表于 2016-2-20 00:37:23 | 显示全部楼层
Thunder_up 发表于 2016-2-19 14:52
楼主你还记得你的数据结构是用Entry table[]这种还是ArrayList array这种呢?貌似table[]这种比较教科书 ...

我用Entry<K, V>过的。。你也是CMU的哦
回复 支持 反对

使用道具 举报

 楼主| 什么都有 发表于 2016-2-20 00:38:10 | 显示全部楼层
googlerr 发表于 2016-2-19 23:59
Java 8里面,HashMap的HashCode在取模前先进行了一个位运算,如下:所以有没有可能是也需要先进行类似的预 ...

我后来听说有人没处理也过了。。。所以我也不知道了。。
回复 支持 反对

使用道具 举报

Thunder_up 发表于 2016-2-20 04:12:54 | 显示全部楼层
什么都有 发表于 2016-2-20 00:37
我用Entry过的。。你也是CMU的哦

恩恩,我是MISM的。我也准备用Entry<K,V>,但具体是Entry<K, V>table[]还是ArrayList<LinkedList<Entry<K, V>>>呢?谢谢学长
回复 支持 反对

使用道具 举报

Thunder_up 发表于 2016-2-20 04:15:19 | 显示全部楼层
googlerr 发表于 2016-2-19 23:59
Java 8里面,HashMap的HashCode在取模前先进行了一个位运算,如下:所以有没有可能是也需要先进行类似的预 ...

同学你做了么?有啥消息没
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-6 14:11

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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