
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int i = 0,j = nums.size()-1;
while(i < j){
int s = nums[i]+nums[j];
if(s<target){
i++;
}else if (s>target){
j--;
}else{
return {nums[i],nums[j]};
}
}
return {};
}
};
哈希:
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_set<int>s;
for(int x:nums){
if(s.count(target-x)){
return {x,target-x};
}
s.insert(x);
}
return {};
}
};