# [136. Single Number](https://leetcode.com/problems/single-number/description/)
# 思路
## 思路一 
最常规的思路就是用一个map或者散列(unordered_map)记录是否出现过。   
map: 时间复杂度O(nlogn), 空间复杂度O(n)   
unordered_map: 时间复杂度O(n), 空间复杂度O(N)

## 思路二*
若某个数出现两次，则异或操作后得0，所以可以考虑将数组所有元素进行异或操作，最终得到的值就是欲求值。   
时间复杂度O(n), 空间复杂度O(1), 完美
# C++
## 思路二
``` C++
class Solution {
public:
    int singleNumber(vector<int>& nums) {
        int res = 0;
        for(int num: nums) res = res ^ num;
        
        return res;
    }
};
```
