力扣链接: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
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。