Problem:
给一个已排好序的数组,从数组中找两个数的和等于给定的一个定值。
Solution:
利用双下标可以在O(n)的复杂度内找到这两个数。
notes:
利用二分会超时,利用双下标明显更聪明一些。
class Solution {
public:
vector<int> twoSum(vector<int>& numbers, int target) {
vector<int> ans;
int l = 0, r = numbers.size()-1;
while(l < r) {
if(numbers[l] + numbers[r] == target) {
ans.push_back(l+1);
ans.push_back(r+1);
break;
}
else if(numbers[l] + numbers[r] > target)
r--;
else
l++;
}
return ans;
}
};