使用XOR逻辑查找丢失的号码

问题描述 投票:0回答:1

给定大小为N-1的数组C,并假设存在从1到N的数字,并且缺少一个元素,则将找到缺失的数字。

我已经知道可以使用XOR的一些有趣属性来解决它。

有趣的属性是

Assume a1 ^ a2 ^ a3 ^ …^ an = x and a1 ^ a2 ^ a3 ^ …^ an-1 = y

Then x ^ y = an

我试图理解逻辑,但失败了。

有人可以解释其中涉及的逻辑吗?

c++ bit logical-operators xor
1个回答
2
投票

[a ^ a根据定义为0,根据您的情况,您正在计算:

x: a[0] ^ a[1] ^ a[2] ^ .. ^ a[n-1] ^ a[n] ^
y: a[0] ^ a[1] ^ a[2] ^ .. ^ a[n-1]        
   =======================================
      0 ^    0 ^    0 ^ .. ^      0 ^ a[n] = a[n]
© www.soinside.com 2019 - 2024. All rights reserved.