hash法
利用undered_map数组构造映射,遍历nums[i]时,看target-nums[i]是否存在hash表中即可
时间复杂度O(n),空间复杂度O(n)
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> ans;
unordered_map<int,int>hashmap;
for(int i=0;i<nums.size();i++){
if(hashmap[target-nums[i]]
&&hashmap[target-nums[i]]!=i+1){
//防止利用同个元素
ans.push_back(i);
ans.push_back(hashmap[target-nums[i]]-1);
return ans;
}
hashmap[nums[i]]=i+1;
//将hash表对应下标+1,防止处理下标为0的情况
}
return ans;
}
};