我看到这个代码片段用于解决 ol'“在数组中找到一个没有重复的数字。”问题。我今天早上一直在看这个,但无法确定它是如何做到的。
我不明白 k 为什么总是最终持有非重复值。谁能解释一下这是如何工作的?
static void Main(string[] args)
{
int[] list = { 3,6,9,12,3,6,9 };
int k = 0;
for (int i = 0; i < list.Length; i++)
{
k = k ^ list[i];
}
Console.WriteLine(k);
}
最佳答案
它仅在只有一个数字不重复(或出现任何奇数次)并且所有其他数字出现偶数次时才有效。
当您将一个数字与另一个数字异或两次(或任何其他偶数次)时,它会自行抵消并留下原始数字。
关于c# - 解释一下这个函数中 XOR 的使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7447611/