Given an array of integers, every element appears twice except for one. Find that single one. class Solution { 这个没有看懂,有没有大神帮忙解答下!谢谢! |
|
20分 |
理解异或运算的特点
无论a是多少,a^a都是0; 汇编中常出现 xor eax,eax ;eax清零 如果该数组是这样的{a,a,b,b,c} 则a^a^b^b^c=0^c=c |
10分 |
0^a(a为任何数)=a
a^a=0 异或还符合交换律 所以只要是相同的想异或总为0,到最后就是0跟那个没有任何相同数异或,答案就是那个数字了 |
请问同样的问题,当每个数出现三次,一个数出现一次的情况怎么求解?有没有通用的技巧?有没有什么关于位运算发的详解,总结什么的?
|
|
10分 |
由于只有一个是出现一次的,其他都是出现2次,而相同的数字异或的结果为0,即:a^a=0
因此最后就留下一个没有成对出现的那个数字了 |