基本搜索位置
int left = 0;int right = length-1;while(left<=right){ int mid = left+(right-left)/2; if(nums[mid]<target){ left = mid+1; }else if(nums[mid]>target){ right = mid-1; }else{ return mid; }}return -1;
扩展-搜索左侧位置
if (nums.length == 0) return -1;
int left = 0;
int right = nums.length;
while(left<right){
int mid = left+(right-left)/2;
if(nums[mid]<target){
left = mid+1;
}else if(nums[mid]>target){
right = mid;
}else{
right = mid;
}
return left;
}
搜索右侧位置
if (nums.length == 0) return -1;
int left = 0;
int right = nums.length;
while(left<right){
int mid = left+(right-left)/2;
if(nums[mid]<target){
left = mid+1;
}else if(nums[mid]>target){
right = mid;
}else{
left = mid+1;
}
return left-1;
}