1.暴力解
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int length = nums.size();
for(int i = 0;i<length;i++){
for(int j = i+1;j<length;j++){
if(nums[i]+nums[j] == target){
return {i,j};
}
}
}
return {};
}
};
2.map哈希表法
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int length = nums.size();
//创建一个map对象
std::unordered_map <int,int> map;
for(int i = 0;i < length;i++){
auto it = map.find(target - nums[i]);
if(it != map.end()){
return {it -> second,i};
}
//没有找到匹配值,放入map对象
map.insert(pair<int,int>(nums[i],i));
}
return {};
}
};