美文网首页leetcode
35. Search Insert Position.go

35. Search Insert Position.go

作者: AnakinSun | 来源:发表于2019-03-22 13:31 被阅读4次

    分治

    func searchInsert(nums []int, target int) int {
        if target < nums[0] {
            return 0
        }
        l := len(nums)
        if target > nums[l-1] {
            return l
        }
        left, right := 0, l-1
        for left <= right {
            m := (left + right) / 2
            if nums[m] > target {
                right = m - 1
                if right >= 0 {
                    if nums[right] < target {
                        return right + 1
                    }
                } else {
                    return 0
                }
            } else if nums[m] < target {
                left = m + 1
                if left < l {
                    if nums[left] > target {
                        return left
                    }
                } else {
                    return l
                }
            } else {
                return m
            }
        }
        return 0
    }
    

    相关文章

      网友评论

        本文标题:35. Search Insert Position.go

        本文链接:https://www.haomeiwen.com/subject/knblvqtx.html