LeetCode/go/magnetic-force-between-two-balls.go
Matej Focko 3ca391ca27
go: add «1552. Magnetic Force Between Two Balls»
Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-06-20 19:57:55 +02:00

41 lines
577 B
Go

package main
import "slices"
func maxDistance(position []int, m int) int {
placed := func(distance int) bool {
counter := 1
last := position[0]
for _, p := range position {
if p-last >= distance {
counter++
last = p
}
if counter >= m {
return true
}
}
return false
}
slices.Sort(position)
low := 1
high := (position[len(position)-1] - position[0]) / (m - 1)
foundMax := 1
for low <= high {
mid := low + (high-low)/2
if placed(mid) {
foundMax = mid
low = mid + 1
} else {
high = mid - 1
}
}
return foundMax
}