// Package q34 implements a solution for https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/ package q34 func find(nums []int, target int) int { l, r := 0, len(nums) for l < r { m := (l + r) / 2 switch { case nums[m] < target: l = m + 1 default: r = m } } return l } func searchRange(nums []int, target int) []int { pos := find(nums, target) if pos < 0 || pos >= len(nums) || nums[pos] != target { return []int{-1, -1} } pos2 := find(nums[pos:], target+1) return []int{pos, pos + pos2 - 1} } var _ = searchRange