avatar
l*n
1
一个数列,有2个数出现奇数次,其他的数都是偶数次。找出这2个数,要求o(n)time
★ Sent from iPhone App: iReader Mitbbs 7.56 - iPad Lite
avatar
l*o
2
HashMap, 不存在的放进去,存在的拿出来,最后return keySet. 可行否?
avatar
p*9
3
假设出现奇数次的两个数为x和y,把所有数异或在一起,结果为r=x^y。因为x!=y,所
以r必有一位为1,即x和y这一位不一样。然后按这一位分成两组,每组则只有一个数出
现奇数次,剩下的事情就很容易了,直接异或就可以了
avatar
l*o
4
这方法好,学习了。

【在 p******9 的大作中提到】
: 假设出现奇数次的两个数为x和y,把所有数异或在一起,结果为r=x^y。因为x!=y,所
: 以r必有一位为1,即x和y这一位不一样。然后按这一位分成两组,每组则只有一个数出
: 现奇数次,剩下的事情就很容易了,直接异或就可以了

avatar
C*U
5
hashtable?
不过应该有更巧妙的办法

【在 l******n 的大作中提到】
: 一个数列,有2个数出现奇数次,其他的数都是偶数次。找出这2个数,要求o(n)time
: ★ Sent from iPhone App: iReader Mitbbs 7.56 - iPad Lite

avatar
v*r
6
XOR啊
avatar
l*a
7
hehaitao一百题里面有。
对于两个出现奇数次的数字,其二进制表示必有个bit不同。用这个bit把数列分成两组
,即简化为找一个出现奇数次的数字的问题。
avatar
h*t
8
对,还有一个更变态的 3个数出现一次 , 找出这3个数的题目。

【在 l*****a 的大作中提到】
: hehaitao一百题里面有。
: 对于两个出现奇数次的数字,其二进制表示必有个bit不同。用这个bit把数列分成两组
: ,即简化为找一个出现奇数次的数字的问题。

avatar
e*s
9
我觉得只有这样才能算正确答案, Hashtable, Bitarray之类的都登不上台面啊...

【在 p******9 的大作中提到】
: 假设出现奇数次的两个数为x和y,把所有数异或在一起,结果为r=x^y。因为x!=y,所
: 以r必有一位为1,即x和y这一位不一样。然后按这一位分成两组,每组则只有一个数出
: 现奇数次,剩下的事情就很容易了,直接异或就可以了

avatar
f*e
10
先全部异或,肯定有一位不相同,根据这一位把数组分成两个子数组,然后对这两个子
数组分别异或。

【在 l******n 的大作中提到】
: 一个数列,有2个数出现奇数次,其他的数都是偶数次。找出这2个数,要求o(n)time
: ★ Sent from iPhone App: iReader Mitbbs 7.56 - iPad Lite

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。