数组中只出现一次的数字
Posted yangyanfen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组中只出现一次的数字相关的知识,希望对你有一定的参考价值。
扩展:数组中只出现一次的两个数字
1、在上述题目中,数组中所有数字异或得到单独数字;那么在这个题目中,数组中所有数字异或得到这两个单独数字的异或;
2、我们只需要把数组中所有数字分成两组,并且每一组中的仅包含一个单独数字,那么就把这个问题转化为基础问题了,比如:
数组:[a,b,c,d,a,b]转换为[a,a,c],[b,b,d],或者是[a,a,d],[b,b,c]。
3、x是两个不相同数字的异或,那么x必然不是0,我们只要找到x为1的某一位,比如第n位,或者m位,只要是x在这一位上为1。那么在这一位上,c,d是不同的,异或运算才得到1,否则就是0了。,这就是区分c,d的关键
4、遍历数组,当第n位为1的时,归位一组,第n位不为1,归为另一组。这样就得到了两个组,将问题成功转换为夹出问题
以上是关于数组中只出现一次的数字的主要内容,如果未能解决你的问题,请参考以下文章