#include <iostream>
#include <vector>
#include <map>
std::vector<int> twoSum(std::vector<int>& vec, int target) {
std::map<int,int> mp;
std::vector<int> vec_result;
int size = vec.size();
for (int i = 0; i < size; i++) {
int diff = target - vec[i];
if (mp.find(diff) != mp.end()) {
auto result = mp.find(diff);
vec_result.push_back(result->second);
vec_result.push_back(i);
return vec_result;
}
mp.insert(std::make_pair(vec[i], i));
}
return vec_result;
}
int main() {
std::vector<int> vec = {1, 5, 7, 6, 4, 3, 2};
std::vector<int> result = twoSum(vec, 9);
for (int i: result) {
std::cout << i << " ";
}
}
/*
run:
1 4
*/