#include #include #include using namespace std; class Solution { public: vector twoSum(vector& nums, int target) { vector res(2); unordered_map d; for (size_t i = 0; i < nums.size(); i++) { if (d.find(target - nums[i]) != d.end()) { res[0] = i; res[1] = d[target - nums[i]]; return res; } else { d[nums[i]] = i; } } return res; } }; int main (int argc, char *argv[]) { Solution s; vector test1 = {2, 7, 11, 15}; int target1 = 9; vector test2 = {3, 2, 4}; int target2 = 6; vector test3 = {3, 3}; int target3 = 6; vector res1 = s.twoSum(test1, target1); cout << res1[0] << ' ' << res1[1] << endl; vector res2 = s.twoSum(test2, target2); cout << res2[0] << ' ' << res2[1] << endl; vector res3 = s.twoSum(test3, target3); cout << res3[0] << ' ' << res3[1] << endl; return 0; }