704. 二分查找
方法一 左闭右开
int search(vector<int>& nums, int target)
{
int left = 0;
int right = nums.size();
while (left < right){
int mid = left + (right-left)/2;
if (nums[mid]==target){
return mid;
}else if (nums[mid]<target){
left = mid +1;
}else{
right = mid;
}
}
return -1;
}
方法二 左闭右闭
int search(vector<int>& nums, int target)
{
int left = 0;
int right = nums.size()-1;
while(left<=right){
int mid = left+(right-left)/2;
if (nums[mid]==target){
return mid;
}else if (nums[mid]<target){
left = mid+1;
}else{
right = mid-1;
}
}
return -1;
}