#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> res;
unordered_map<int, int> map;
for (int i = 0; i < nums.size(); i++) {
auto it = map.find(nums[i]);
if (it == map.end()) {
map.emplace(target - nums[i], i);
} else {
res.push_back(it->second);
res.push_back(i);
break;
}
}
return res;
}
};
int main() {
vector<int> v{1,2,3,10,9,7,5,100};
Solution sol;
auto res = sol.twoSum(v, 15);
cout << res[0] << " " << res[1] << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIFNvbHV0aW9uIHsKcHVibGljOgogICAgdmVjdG9yPGludD4gdHdvU3VtKHZlY3RvcjxpbnQ+JiBudW1zLCBpbnQgdGFyZ2V0KSB7CiAgICAgICAgdmVjdG9yPGludD4gcmVzOwogICAgICAgIHVub3JkZXJlZF9tYXA8aW50LCBpbnQ+IG1hcDsKICAgICAgICAKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bXMuc2l6ZSgpOyBpKyspIHsKICAgICAgICAgICAgYXV0byBpdCA9IG1hcC5maW5kKG51bXNbaV0pOwogICAgICAgICAgICBpZiAoaXQgPT0gbWFwLmVuZCgpKSB7CiAgICAgICAgICAgICAgICBtYXAuZW1wbGFjZSh0YXJnZXQgLSBudW1zW2ldLCBpKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJlcy5wdXNoX2JhY2soaXQtPnNlY29uZCk7CiAgICAgICAgICAgICAgICByZXMucHVzaF9iYWNrKGkpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgcmV0dXJuIHJlczsKICAgIH0KfTsKCmludCBtYWluKCkgewoJdmVjdG9yPGludD4gdnsxLDIsMywxMCw5LDcsNSwxMDB9OwoJU29sdXRpb24gc29sOwoJYXV0byByZXMgPSBzb2wudHdvU3VtKHYsIDE1KTsKCWNvdXQgPDwgcmVzWzBdIDw8ICIgIiA8PCByZXNbMV0gPDwgZW5kbDsKCXJldHVybiAwOwp9