lc-go/solutions/0/q34/solution.go
2026-01-17 12:51:40 +09:00

26 lines
449 B
Go

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