136. Single Number

1.問題

  • 給予一個整數(正, 負)序列, 每個數字重複2次, 找出只有出現一次的數字

2.想法

  • 提問: 是否會包括負數?

  • function header, parameter

  • test input

  • 觀察

    • 由於最多出現兩次, 應該要想到用XOR, 當同一個bit的值皆為1或0時, 會設為0, 也就是當該bit被設兩次時, 數值會為0

  • 說明想法

  • 測試計算複雜度

3.程式碼

class Solution {
public:
    int singleNumber(vector<int>& nums) {
        if (nums.empty()) {
            return 0;
        }
        
        int res = 0;
        for (int i = 0; i < nums.size(); i++) {
            res ^= nums[i];
        } 
        
        return res;
    }
};

Last updated