LeetCode 1.两数之和
程序员文章站
2022-04-17 17:28:13
...
方法一:一遍hash
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int,int> m;//建立无序map
for(int i=0;i<nums.size();i++){
if(m.find(target-nums[i]) != m.end())//m中存在对应的键值
return {m[target-nums[i]] , i};//返回下标
m[nums[i]]=i; //没找到则插入map
}
return {};//处理空向量
}
};
方法二:两遍哈希
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int,int> m;
for(int i=0;i<nums.size();i++)//向map中添加元素
m[nums[i]] = i;
for(int i=0;i<nums.size();i++){
if(m.find(target-nums[i]) != m.end() && m[target-nums[i]] != i)//m中存在对应的键值,且不为i
return {i , m[target-nums[i]]};//返回下标
}
return {};
}
};
上一篇: ORB特征匹配(python)
下一篇: 里程计运动模型及标定