如题

又是刻在dna中的二分法
public static int searchInsert(int[] nums, int target) {
int left =0;
int right = nums.length-1;
if (target<=nums[0]){//小于等于最小值,插入0
return 0;
}else if (target==nums[right]){//=最大,插入原最后一位
return right;
}else if (target>nums[right]){//>最大,插入最后面
return right+1;
}
int middle =0;
while (left+1<right){//标准二分
middle=(right+left)/2;
if(nums[middle]>target){
right=middle;
}else if(nums[middle]<target){
left=middle;
}else{
return middle;
}
}
return right;//无匹配应当插入当前right位
}
注意分析具体的插入位置即可

该博客讨论了一个Java实现的二分查找算法,用于确定目标值在有序数组中的插入位置。当目标值小于等于数组最小值时,插入0;等于最大值时,插入原末尾;大于最大值时,插入末尾后一位。通过标准二分法找到目标值的合适位置,若不存在匹配项,则返回当前right位置作为插入点。
2599

被折叠的 条评论
为什么被折叠?



