/*
* 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
* */
/**
* @param {number[]} nums
* @param {number} target
* @return {number}
*/
var searchInsert = function(nums, target) {
if(!nums||!nums.length){
return 0;
}
var l=0,r=nums.length-1,mid=0;
while (l<r){
mid=parseInt((l+r)/2);
if(nums[mid]===target){
return mid;
}else if(nums[mid]<target){
l=mid+1;
}else {
r=mid;//如果改成r=mid-1,退出while时,有可能l>r,target需要和nums[l],nums[r]都进行比较
}
}
l=nums[l]<target?l+1:l
// 计算:nums:[1,3,5,6],target=7时,添加的,退出while时,l=r,
// 那么此时,nums[l]><=target都有可能,当nums[l]>=target时,应该返回l,否则应该返回l+1
return l;
};
35.搜索插入位置
于 2022-05-29 13:23:58 首次发布