【LeetCode】(簡單)136. 只出現一次的數字

思路:

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;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章