[原题链接](https://leetcode-cn.com/problems/search-insert-position/solution/qian-duan-shi-tang-ti-jie-chao-hao-li-ji-4hu6/) ## 二分查找 先来看下有序数组的二分查找。 ```js const search = function(nums, target) { let start = 0 let end = nums.length - 1 while (start <= end) { const mid = start + ((end - start) >> 1) if (nums[mid] === target) return mid if (nums[mid] < target) { start = mid + 1 } else { end = mid - 1 } } return -1 } ``` 1. 题目给定一个排序数组,还有一个目标值,要直接想到用二分查找来解题 2. 只不过题目增加了条件,如果找到值返回其索引,如果没有找到的话,需要返回它按顺序插入的位置 start ```js const searchInsert = function(nums, target) { let start = 0 let end = nums.length - 1 while (start <= end) { const mid = start + ((end - start) >> 1) if (nums[mid] === target) return mid if (nums[mid] < target) { start = mid + 1 } else { end = mid - 1 } } return start } ``` - 时间复杂度:O(logn) - 空间复杂度:O(1)
Activity