题目:
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n) 的算法。
方法:二分查找
var searchInsert = function(nums, target){
let left = 0;
let right = nums.length
let res = 0;
while(left<=right){
let mid = Math.floor((left+right)/2)
if(target>nums[mid]){//如果目标值target大于中间值,则left = mid+1,右移
left = mid+1
}else{//目标值target小于中间值,则right = mid-1,左移
right = mid -1;
res = mid;//target与中间值相等,或目标值不存在数组中
}
}
return res;
}