G
N
I
D
A
O
L

136. 只出现一次的数字_LeetCode

异或运算的作用

参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1

也就意味着这个操作可以提取一堆数字当中唯一出现过的一个数

  即:

	0^0 = 0,
	1^0 = 1,
	0^1 = 1,
	1^1 = 0
	// 通俗理解
	a ^ a = 0
	0 ^ a = a

例如
136. 只出现一次的数字
解决这道问题就可以使用异或实现。

int singleNumber(int* nums, int numsSize){
	int ret = 0;
	for (int i = 0; i < numsSize; i++)
	{
		ret ^= nums[i];
	}
	return ret;
}

相关链接:

posted @ 2021-07-19 10:17  StimuMing  阅读(64)  评论(0编辑  收藏  举报