找出数组中只出现一次的数,其余的数都出现两次。
主题思想: 异或的定义,相同为0, 不同为1, 数组里每个数都异或操作,最后肯定是0和只出现一次的那个数异或,任何数和0异或等于数本身。
AC代码:
class Solution {
public int singleNumber(int[] nums) {
if(nums.length==1) return nums[0];
int ans=nums[0];
for(int i=1;i<nums.length;i++){
ans=ans^nums[i];
}
return ans;
}
}