
这道题与二分法不同的是对没有相同对象情况的处理,当没有相同的对象的时候,需要找到离target对象最近的两个对象存在它们中间
/**
* @param {number[]} nums
* @param {number} target
* @return {number}
*/
var searchInsert = function(nums, target) {
var low = 0, high = nums.length - 1;
while(low <= high){
var mid = Math.floor((high + low) / 2);
if(nums[mid] == target){
return mid;
}else if(nums[mid] < target){
low = mid + 1;
}else{
high = mid - 1;
}
}
return Math.floor((low + high) / 2 + 1);
};
小伙伴们今天的学习就到这里了,如果觉得本文对你有帮助的话,欢迎转发,评论,收藏,点赞!!!
每天学习进步一点点,就是领先的开始。如果想继续提高,欢迎关注我,或者关注公众号”祯民讲前端“。大量前端技术文章,面试资料,技巧等助你更进一步!

本文介绍了一种二分查找的变种实现方法,当目标值不在数组中时,能够找到最接近目标值的位置。通过调整查找范围,该算法可以在没有重复元素的情况下高效地定位插入位置。
3万+

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



