#include <vector>
#include <unordered_map>
 
class Solution {
public:
    int singleNumber(std::vector<int>& nums) {
        if (nums.size() <= 1) return nums[0];
 
        std::unordered_map<int, int> nFreq;
        for (const int& n : nums) nFreq[n]++;
 
        for (auto& [n, f]: nFreq) {
            if (f == 1) return n;
        }
 
        return nums[0];
    }
};