1. Hash Map / Set Frequency Counting
Intuition
Store frequencies in a map or set. Filter elements appearing exactly once.
When to apply: Basic baseline when memory is unconstrained.
Algorithm
- Step 1: Build frequency map.
- Step 2: Collect keys with frequency == 1.
- Step 3: Return result array.
#include <iostream>#include <vector>#include <unordered_map> using namespace std; vector<int> singleNumberBrute(const vector<int>& nums) { unordered_map<int, int> freq; for (int x : nums) freq[x]++; vector<int> res; for (auto& p : freq) { if (p.second == 1) res.push_back(p.first); } return res;} int main() { vector<int> nums = {1, 2, 1, 3, 2, 5}; auto res = singleNumberBrute(nums); cout << "Brute: " << res[0] << ", " << res[1] << endl; // 3, 5 return 0;}Time & Space Complexity
- Time complexity:
O(n) - Space complexity:
O(n)