给定一个整数数组,除了某个元素外其余元素均出现两次。请找出这个只出现一次的元素。
思路:用异或的方式排查出只出现一次的那个元素。异或两个为1或者是 同号为假(0)异号为真(1)
0∧0=0,0∧1=1,1∧1=0
1 = 0001
2 = 0010
3 = 0011
2 = 0010
1 = 0001
所以 1^2^3^2^1 = 3 ( 0011)
fun singleNumber(nums: IntArray): Int {
var temp:Int = 0
for (i in nums.indices) {
temp = temp.xor(nums[i])
}
return temp
}