题目描述
输入一个数组和一个数字 s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于 s,输出任意一对即可。你可以认为每输入中都至少含有一组满足条件的输出。
样例
class Solution {
public:
vector<int> findNumbersWithSum(vector<int>& nums, int target) {
auto p=nums.begin();
auto q=nums.end()-1;
sort(p,q+1);
while(p!=q){
if((*p)+(*q)==target){
vector<int> subset;
subset.push_back(*p);
subset.push_back(*q);
return subset;
}
if((*p)+(*q)>target)q--;
if((*p)+(*q)<target)p++;
}
}
};