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} }