题目35:搜索插入位置
题目描述:
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n) 的算法。
题解:
func searchInsert(nums []int, target int) int {
if target > nums[len(nums)-1]{
return len(nums)
}
if target < nums[0]{
return 0
}
l, r, mid := 0, len(nums)-1, 0
for l<=r{
mid = (l+r)/2
if nums[mid]==target{
return mid
}else if nums[mid]<target{
l = mid +1
}else{
r = mid -1
}
}
if nums[mid] > target{
return mid
}else{
return mid+1
}
}