题目描述:
题解:
自己的解法,排序加判断
int len=nums.length;
if(len==1){
return nums[0];
}else {
Arrays.sort(nums);
for (int i = 0; i <len ; i++) {
if(i==0){
if(nums[0]!=nums[1]){
return nums[0];
}
}else if(i==len-1){
if(nums[len-1]!=nums[len-2]){
return nums[len-1];
}
}else if(nums[i]!=nums[i-1]&&nums[i]!=nums[i+1]){
return nums[i];
}
}
}
return -1;
官方解法,妙哉!
满足结合律才是真。
int single = 0;
for (int num : nums) {
single ^= num;
}
return single;
异或:相同为0不同为1.