关于后端:Leetcode专题数组35搜索插入位置

力扣链接:https://leetcode-cn.com/probl…
解题思路:

  1. 题干的有用信息:(1)有序数组 (2)目标值 (3)logn工夫复杂度
  2. 这里其实就是一个查找,数组的查找又logn工夫复杂度,那么很容易会先想到二分查找
  3. 二分查找的留神点:(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
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理