思路:
1. 利用map集合存储,key存储数值,value存储出现次数;空间复杂度为O(n),时间复杂度为O(n)
2. 利用异或运算,首先知道一个结论,i ^ i = 0; 0 ^ i = i ; 所以两个相同的数异或等于0;在和出现一次的那个数值进行异或得到的就是那个数;空间复杂度O(1),时间复杂度O(n)
代码:
以第二种简单的方法为主:
class Solution {
public int singleNumber(int[] nums) {
int result = nums[0];
for(int i = 1; i< nums.length; i++){
result ^= nums[i];
}
return result;
}
}