#include <vector>
#include <unordered_map>
#include <algorithm>
 
class Solution {
public:
    std::vector<int> twoSum(std::vector<int>& nums, int target) {
        std::unordered_map<int, int> n_map;
        std::vector<int> sol;
 
        for (int i = 0; i < nums.size(); i++) {
 
            if (n_map.contains(target - nums[i])) {
                sol.push_back(n_map[target - nums[i]]);
                sol.push_back(i);
                break;
            }
 
            n_map[nums[i]] = i;
        }
 
        return sol;
    }
};