题目描述
由DFS变二分了
输入一个数组和一个数字s,在数组中查找两个数,使得它们的和正好是 s。
如果有多对数字的和等于s,输出任意一对即可。你可以认为每组输入中都至少含有一组满足条件的输出。
数据范围
数组长度 [1,1002]。
样例
输入:[1,2,3,4] , sum=7
输出:[3,4]
整体思路:基本二分
class Solution {
public:
vector<int> findNumbersWithSum(vector<int>& nums, int target) {
sort(nums.begin(),nums.end());
for(int i = 0 ,j = nums.size() - 1; i <j;){
if(nums[i] +nums[j] == target)
return vector<int>{nums[i],nums[j]};
else if(nums[i] + nums[j] < target)
i++;
else
j--;
}
}
};