按位异或寻找只出现一次的数

Go_Viola

关注

阅读 62

2022-11-04

1.上节博客分享了寻找之出现一次的数,是暴力算法。

2.这次分享一个简单算法,按位异或。

3.缺点是只能有一个数是出现一次,如果多于一个,按位异或就无法完成。

4.文末会增加按位异或的小知识点。

按位异或寻找只出现一次的数_按位异或

5.像这个数组,4和7分别出现一次,无法用按位异或。

按位异或寻找只出现一次的数_按位异或_02

按位异或知识点:

  1. a^b 是表示 a 和 b 所对应的二进制,如果所对应的位的数字相同,则为0;如果不相同,则为1。
  2. 例子: 3 的二进制是011;

               5 的二进制是101;

                所得结果 是110;

3.按位异或满足交换律,有以下特点:

              0^ a = a;

              a^a = 0;

这个题目就是用到了 a^a = 0;

精彩评论(0)

0 0 举报