1.TwoSum
从今天开始好好刷题吧!
此题用哈希表即可求解,依题意不必在哈希表建好之后进行寻找,而是在建表的同时进行寻找
这里使用了一个库 <unordered_map>
注意即使题目说明了一定会有解,但是函数中还是要在无解的情况下返回一个值
我的测试代码如下:
#include<iostream>
#include<vector>
#include<unordered_map>
using namespace std;
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int>hash;
vector<int> result;
for (int i = 0; i < nums.size(); i++) {
int num = target - nums[i];
if (hash.find(num) != hash.end()) {
result.push_back(hash[num]);
result.push_back(i);
return result;
}
else {
hash[nums[i]] = i;
}
}
return result;
}
int main() {
vector<int> nums{3,2,4};
int target;
cin >> target;
vector<int> result=twoSum(nums,target);
for (auto b: result) {
cout << b;
}
system("pause");
return 0;
}