原题目

解题思路
第一时间想到的应该是排序,然后两两比较,找到不同的即可;但是任何一种排序方法的时间复杂度均不满足题目的要求。。。。
抓住题目的重点,其余数字由于是出现两次的,因此我们可以根据位异或运算的特点,相同数字异或运算的结果应为0,0与任何数字运算结果仍未起本身。
Java解答
public int singleNumber(int[] nums) {
int target=0;
for(int i=0;i<nums.length;i++){
target^=nums[i];
}
return target;
}
异或平时用的比较少。。。。比较难想到