题目描述:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。
解题思路:数组第一个元素和最后一个元素先相加,如果大了最后一个元素向前移,小了第一个元素向后移。
代码:
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int>result;
int sum,i=0,j=nums.size()-1;
while(i<j){
sum=nums[i]+nums[j];
if(sum==target){
result.push_back(nums[i]);
result.push_back(nums[j]);
break;
}
if(sum>target) j--;
else i++;
}
return result;
}
};