二分搜索,最后target在某两个数中间的时候返回right
class Solution {
public int searchInsert(int[] nums, int target) {
if(target<=nums[0]){
return 0;
}
else if(target>nums[nums.length-1]){
return nums.length;
}
int left=0;
int right=nums.length-1;
while(left+1<right){
int mid=left+(right-left)/2;//避免溢出
if(nums[mid]>target){
right=mid;
}
else if(nums[mid]<target){
left=mid;
}
else{
return mid;
}
}
return right;
}
}