vector<int> twoSum(vector<int>& numbers, int target) {
for(int i=0;i<numbers.size();i++){
int t=target-numbers[i],left=i+1,right=numbers.size()-1;
while(left<=right){
int mid=(right+left)/2;
if(numbers[mid]==t)
return{i+1,mid+1};
else if(numbers[mid]>t)
right=mid;
else left=mid+1;
}
}
return{};
}
超时了!!!
vector<int> twoSum(vector<int>& numbers, int target) {
int left=0,right=numbers.size()-1;
while(left<=right){
if(numbers[left]+numbers[right]==target)
return{left+1,right+1};
else if(numbers[left]+numbers[right]>target)
right--;
else
left++;
}
return{};
}
OK!!!