力扣链接:https://leetcode-cn.com/probl...
解题思路:
- 题干的有用信息:(1)有序数组 (2)目标值 (3)logn工夫复杂度
- 这里其实就是一个查找,数组的查找又logn工夫复杂度,那么很容易会先想到二分查找
- 二分查找的留神点:(1)左右边界管制(2)mid值避免溢出,最好应用(right-left) >> 1 + left
func searchInsert(nums []int, target int) int { left := 0 right := len(nums) - 1 ans := len(nums) for left <= right { mid := (right - left) >> 1 + left if nums[mid] >= target { ans = mid right = mid - 1 } else { left = mid + 1 } } return ans}