经典第一题,要求返回和为目标值的两数的下标,那么可以考虑使用哈希表来进行题解.
当要求返回下标时,首先应该使用unordered_map,存放的是<T, T>
此题代码如下:
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int>map;
for(int i = 0;i < nums.size();++i){
map.insert(pair<int, int>(nums[i], i)); //此处将每一个元素均传入哈希表中
}
for(int i = 0;i < nums.size();++i){
if(map.find(target - nums[i]) != map.end() && map.find(target - nums[i])->second != i){
return {map.find(target - nums[i])->second, i};
}
}
}};