{1, 2, 3, 3, 3, 4, 5}
基本的二分查找
while(low <= high){
int mid = low + (high - low) / 2;
if(arr[mid] == x)
return mid;
else if(arr[mid] > x)
high = mid - 1;
else
low = mid + 1;
}
return -1;
查找最后一个小于3的数(2)
while(low<=high){
int mid = low + (high - low)/2;
if(arr[mid]>= x)
high = mid-1;
else
low = mid +1;
}
return Math.max(-1, high);
查找第一个大于3的数(4)
while(low <= high){
int mid = low + (high - low) / 2;
if(x >= arr[mid])
low = mid + 1;
else
high = mid - 1;
}
return Math.min(low, arr.length);