1
skydiver 2014-05-15 20:11:07 +08:00 1
异或
|
2
dennisyang 2014-05-15 20:25:24 +08:00
分块hash?
|
3
john990 OP |
7
bengol 2014-05-15 21:26:00 +08:00
为什么会多了一个?
|
10
txx 2014-05-15 21:47:47 +08:00
|
11
jsonline 2014-05-16 00:05:39 +08:00
对啊,为什么会多一个,搞清楚这个问题价值会更大吧。
|
12
wy315700 2014-05-16 00:16:47 +08:00
把所有的数异或一下 最后的结果就是那个多出来的数
简单的面试题 |
13
stevenyou 2014-05-16 09:31:01 +08:00 1
sum(一百万零一个) - sum(一百万个数)
得到的结果就是多的那一个 |
14
stevenyou 2014-05-16 09:31:51 +08:00
效率是O(n)
|
17
stevenyou 2014-05-16 10:55:40 +08:00 1
@cassyfar 是有overflow的问题,但是从两个数可以看出来的。如果是32bit int
sum(一百万零一个) = -32768 sum(一百万个数) = 32767 可以知道多出的那个数是1 当然了,xor的方法是最好的。 |
20
riaqn 2014-05-16 12:39:37 +08:00 2
|
22
Virtao 2014-05-17 00:16:15 +08:00
之前V2EX上就有个类似的题目,再次分享我的总结:
http://blog.virtao.org/articles/163.html 另外严重同意 @skydiver 的说法,这类题目玩玩可以,当面试题没意义。万一碰到个大牛恰好这个题目没碰到过呢? |