1、两数之和(简单)
解法一:暴力穷搜
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int n = nums.size();
int i,j;
//使用两个循环进行遍历
for(i=0;i<n;++i)
{
for (j=i+1;j<n;++j)
{
if (nums[i]+nums[j]==target)
{
return {i,j};
}
}
}
return {i,j};
}
};
解法二:使用HashMap映射
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
//运用HashMap建立数字和其坐标位置之间的映射
unordered_map<int,int> HashMap;
for (int i=0;i<nums.size();i++){
//检查target减去遍历数字的结果是否在HashMap存在
if(HashMap.count(target-nums[i])){
return {i,HashMap[target-nums[i]]};
break;
}
else{
HashMap[nums[i]]=i;
}
}
return {};
}
};