搜索插入位置
题干
. - 力扣(LeetCode)
解题思路
- 利用减治算法。
- 该题的条件是找到有序数组中存在目标元素 target 的元素,那么我们可以从中间寻找。
- 定义两个指针,left,right。
-
- 因为要寻找插入条件,所以 right可以为nums.length.
- 通过 target 与 nums[target]进行比较如果nums[mid] < target,那么 left = mid =1 ,否则 right = mid。 逐步缩小空间。
var searchInsert = function(nums: number[], target: number) {
let left = 0,right = nums.length-1
while(left < right){
let mid = left + Math.floor((right - left) / 2)
if(nums[mid] === target){
return mid
}
if(nums[mid] < target){
left = mid + 1
}else{
right = mid - 1
}
}
if(nums[left] < target){
return left + 1
}else{
return left
}
};
console.log(searchInsert([1, 3,5,6], 0));