035.搜索插入位置 Search Insert Position

Description

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。

Example
输入: [1,3,5,6], 5
输出: 2

输入: [1,3,5,6], 2
输出: 1

输入: [1,3,5,6], 7
输出: 4

输入: [1,3,5,6], 0
输出: 0
Solution
func searchInsert(nums []int, target int) int {
    if len(nums) == 0 {
        return 0
    }
    if target > nums[len(nums)-1] {
        return len(nums)
    }
    if target < nums[0] {
        return 0
    }
    left ,right := 0,len(nums)-1
    for left <= right {
        mid := (left+right)/2
        if nums[mid] == target {
            return mid
        }
        if nums[mid] < target {
            left = mid +1
        }else {
            right = mid-1
        }
    }
    return left
}


func searchInsert1(nums []int, target int) int {
    if len(nums) == 0 {
        return 0
    }

    for i := 0; i < len(nums);i ++ {
        if nums[i] >= target {
            return i
        }
    }
    return len(nums)
}

leetCode地址