刷题自用
代码
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int left=0;
int n=nums.size();
int right=n-1;
vector<int>res;
while(left<right){
if(nums[left]+nums[right]>target){
right--;
}
else if(nums[left]+nums[right]<target){
left++;
}
else{
res.push_back(nums[left]);
res.push_back(nums[right]);
break;
}
}
return res;
}
};
思路
双指针,在递增序列中,通过头尾两个数之和判定left++还是right–,一旦找到符合条件的值就放入res中输出,题目只要求任意一组。