要求:有序递增数组找出两个数满足相加之和等于目标数,假定了有唯一解
思路:双指针前后遍历,时间O(n),空间O(1)
class Solution {
public:
vector<int> twoSum(vector<int>& numbers, int target) {
int i=0;
int j=numbers.size()-1;
while(i!=j){
if(numbers[i]+numbers[j]>target)
j--;
else if(numbers[i]+numbers[j]<target)
i++;
else break;
}
return {i+1,j+1};
}
};