思路:
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;
}
}