题目
给定一个非空数组 nums,其中除了一个元素外,其他每个元素都出现了两次,找到这个唯一出现一次的数字。
解析
异或运算的规律,两个相同的数字异或为 0 ,0 和任何数字异或得本身。异或运算满足结合率。
伪代码
rst = 0
for i in nums
rst ^= nums[i]
return rst
代码
func singleNumber(nums []int) int {
rst := 0
for i := range nums {
rst ^= nums[i]
}
return rst
}
image.png








网友评论