思路:先固定一个数,然后利用二分法寻找另外一个数。
class Solution {
public:
vector<int> twoSum(vector<int>& numbers, int target) {
for(int i=0;i<numbers.size();++i)
{
int t=target-numbers[i];
int l=i+1,r=numbers.size();
while(l<r)
{
int mid=(l+r)/2;
if(numbers[mid]==t) return {i+1,mid+1};
else if(numbers[mid]<t) l=mid+1;
else
r=mid;
}
}
return {};
}
};