给定一个非空 的整数数组,除了一个元素外,每个元素都会出现两次。找到那一个。
注意:
您的算法应具有线性运行时复杂性。你能不用额外的内存来实现吗?
例1:
输入: [2,2,1]
输出: 1
例2:
输入: [4,1,2,1,2]
输出: 4
利用异或运算符,两次相同的元素都会被清除剩下单独的那个
public class Solution {
public int singleNumber(int[] nums) {
int len=nums.length;
int result=nums[0];
for (int i=1;i<len;i++){
result^=nums[i];
}
return result;
}