1.上节博客分享了寻找之出现一次的数,是暴力算法。
2.这次分享一个简单算法,按位异或。
3.缺点是只能有一个数是出现一次,如果多于一个,按位异或就无法完成。
4.文末会增加按位异或的小知识点。
5.像这个数组,4和7分别出现一次,无法用按位异或。
按位异或知识点:
- a^b 是表示 a 和 b 所对应的二进制,如果所对应的位的数字相同,则为0;如果不相同,则为1。
- 例子: 3 的二进制是011;
5 的二进制是101;
所得结果 是110;
3.按位异或满足交换律,有以下特点:
0^ a = a;
a^a = 0;
这个题目就是用到了 a^a = 0;