力扣167:两数之和 II - 输入有序数组
给定一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。
使用双指针,定义一个向量,最后以向量的形式输出。
代码如下:
C++
class Solution {
public:
vector<int> twoSum(vector<int>& numbers, int target) {
vector<int> res; //初始化一个向量res
int left = 0, right = numbers.size()-1; //初始化指针
while(left<right)
{
if (numbers[left]+numbers[right]==target)
{
res.push_back(left+1);
res.push_back(right+1);
break; //双指针对应数组的值之和等于目标值时,输出双指针对应的位置
}
else if (numbers[left]+numbers[right]>target)
{
--right;
}
else
{
++left;
}
}
return res;
}
};