1
0
Fork 0
mirror of https://gitlab.com/mfocko/LeetCode.git synced 2024-11-10 00:09:06 +01:00
LeetCode/go/special-array-with-x-elements-greater-than-or-equal-x.go
2024-05-27 13:35:34 +02:00

37 lines
482 B
Go

package special_array_with_x_elements_greater_than_or_equal_x
import (
"slices"
)
func specialArray(nums []int) int {
bsearch := func(key int) int {
l := 0
r := len(nums) - 1
idx := len(nums)
for l <= r {
mid := (l + r) / 2
if nums[mid] >= key {
idx = mid
r = mid - 1
} else {
l = mid + 1
}
}
return idx
}
slices.Sort(nums)
for i, _ := range nums {
k := bsearch(i + 1)
if len(nums)-k == i+1 {
return i + 1
}
}
return -1
}