问题分析:
找出关键字: 一个只出现一次,其余出现两次
设计解题:
借助题干给的每个元素均出现两次。可以使用异或运算,异或运算相等为0,不等则或。将数组从头至尾进行异或,最终剩下的即为只出现一次,这样时间复杂度O(N),空间复杂度O(1)
Golang代码实现如下
len := len(nums)
var num int
for i := 0; i < len; i++{
num = num ^ nums[i]
}
return num
}