class Solution {
public:
vector<int> twoSum(vector<int>& numbers, int target) {
int len = numbers.size();
vector<int> result={};
int i = 0, j = len-1;
while(i<j){
if(numbers[i] + numbers[j] < target){
i++;
}
else if(numbers[i] + numbers[j] > target){
j--;
}
else{
result.push_back(i+1);
result.push_back(j+1);
return result;
}
}
}
};
使用两个指针,第一个指针指向开头,第二个指向数组尾,两个指针所指向的值之和小于target时,左边的指针右移,反之右边的指针左移,之和等于target时返回两个指针的index。