给定一个有序的数组和一个目标值,在数组中寻找两个数,使得两数相加等于目标值,返回这两个数的下标。
假设每个目标数只有一个解决方案,数组中每个数只能使用一次,返回的时候,前面的下标小于后面的下标
例如:[2,7,11,15] target=9;
return index1=1,index2=2;
class Solution {
public:
vector<int> twoSum(vector<int>& numbers, int target) {
vector<int> indices;
int n=numbers.size()-1;
int m=0;
while(m!=n)
{
if(numbers[n]+numbers[m]==target)
{
indices.push_back(m+1);
indices.push_back(n+1);
break;
}
if(numbers[n]+numbers[m]>target)
n--;
if(numbers[m]+numbers[n] < target)
m++;
}
return indices;
}
};