题目:
算法思想:因为数组是有序的,只需要从数组头部和尾部向中间扫描,如果两个数和大于target,则需要尾指针前移。若是小于target,则头指针后移,注意下标是从1开始的。
代码:
vector<int> twoSum(vector<int>& numbers, int target) {
vector<int> result;
int begin = 0;
int end = numbers.size()-1;
while(begin < end)
{
if(numbers[begin] + numbers[end] == target)
{
result.push_back(begin+1);
result.push_back(end+1);
break;
}
else if(numbers[begin] + numbers[end] > target)
end--;
else
begin++;
}
return result;
}