美文网首页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