双指针
class Solution {
public:
vector twoSum(vector& nums, int target) {
int n=nums.size();
int pre=0,back=n-1;
vector out;
while(pre
if(nums[pre]+nums[back]>target){
back--;
}else if(nums[pre]+nums[back]
pre++;
}else{
out.push_back(nums[pre]);
out.push_back(nums[back]);
break;
}
}
return out;
}
};
哈希表
class Solution {
public:
vector twoSum(vector& nums, int target) {
unordered_sethashset;
vector out;
for(int n:nums){
auto it=hashset.find(target-n);
if(it!=hashset.end()){
out.push_back(target-n);
out.push_back(n);
break;
}else{
hashset.insert(n);
}
}
return out;
}
};