给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 1:
输入: [1,3,5,6], 5
输出: 2
示例 2:
输入: [1,3,5,6], 2
输出: 1
示例 3:
输入: [1,3,5,6], 7
输出: 4
代码:
package main
import "fmt"
func searchInsert(nums []int, target int) int {
var mid int
low , height := 0 , len(nums)
if nums[len(nums)-1] < target {
return len(nums)
}
for low <= height {
mid = (low+height)/2
fmt.Println(height)
if target < nums[mid] {
height = mid - 1
}else if target > nums[mid]{
low = mid + 1
}else if target == nums[mid]{
return mid
}
}
return low
}
func main() {
nums :=[]int{1,3,5,6}
target := 7
d :=searchInsert(nums, target)
fmt.Println(d)
}