34.在排序数组中查找元素的第一个和最后一个位置
34.在排序数组中查找元素的第一个和最后一个位置
题解
思路:
1.go自带二分函数sort.SearchInts或者sort.Search
2.函数返回第一个等于target的下标,如果target不存在则返回第一个大于target数的下标
3.由于target可能不在数组中,所有需要对下标进行校验
代码
func searchRange(nums []int, target int) []int {
s := sort.SearchInts(nums, target)
e := sort.SearchInts(nums, target+1) - 1
if s == len(nums) || nums[s] != target {
return []int{-1, -1}
}
return []int{s, e}
}