45 lines
1002 B
C++
45 lines
1002 B
C++
#include <iostream>
|
|
#include <unordered_map>
|
|
#include <vector>
|
|
|
|
using namespace std;
|
|
|
|
class Solution {
|
|
public:
|
|
vector<int> twoSum(vector<int>& nums, int target) {
|
|
vector<int> res(2);
|
|
|
|
unordered_map<int, int> 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<int> test1 = {2, 7, 11, 15}; int target1 = 9;
|
|
vector<int> test2 = {3, 2, 4}; int target2 = 6;
|
|
vector<int> test3 = {3, 3}; int target3 = 6;
|
|
|
|
vector<int> res1 = s.twoSum(test1, target1);
|
|
cout << res1[0] << ' ' << res1[1] << endl;
|
|
vector<int> res2 = s.twoSum(test2, target2);
|
|
cout << res2[0] << ' ' << res2[1] << endl;
|
|
vector<int> res3 = s.twoSum(test3, target3);
|
|
cout << res3[0] << ' ' << res3[1] << endl;
|
|
|
|
return 0;
|
|
}
|
|
|