搜索插入位置--算法练习

leetcode35.搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

请必须使用时间复杂度为 O(log n) 的算法。

示例 1:

1
2
输入: nums = [1,3,5,6], target = 5
输出: 2

示例 2:

1
2
输入: nums = [1,3,5,6], target = 2
输出: 1

示例 3:

1
2
输入: nums = [1,3,5,6], target = 7
输出: 4

有序?查找?二分法直接上

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var searchInsert = function(nums, target) {
var left=0
var right=nums.length-1
while(left<=right){
//这里需要注意一点js中的/会保留小数,所以需要向下取整一下
var mid=Math.floor((left+right)/2)
if(nums[mid]<target){
left=mid+1
}else if(nums[mid]>target){
right=mid-1
}else{
return mid
}
}
return left
};

搜索插入位置--算法练习
https://tian-1-2.github.io/typblog/2022/02/22/20221022-搜索插入位置--算法练习/
作者
田云鹏
发布于
2022年2月22日
许可协议