Максимизировать минимальное расстояние (агрессивные коровы)

Бинарный поиск Сложная
Дан список позиций стойл positions на числовой прямой и число k (животных, которых нужно расставить по стойлам, не более одного животного на стойло). Расставьте всех k животных так, чтобы МИНИМАЛЬНОЕ расстояние между любыми двумя из них было как можно БОЛЬШЕ. Верните это максимальное значение минимального расстояния. Классическая задача на бинарный поиск по ответу, но в противоположную сторону, чем обычно: не минимизируем максимум, а максимизируем минимум. Проверка для кандидата d - жадно расставить животных слева направо, пропуская стойла ближе d к последнему занятому.
Сигнатура функции
max_min_distance(positions: list[int], k: int) -> int
Примеры
ВходОжидаемый результат
[[1, 2, 4, 8, 9], 3]3
[[1, 2, 3, 4, 5], 2]4
1решили
1пытались
100%успешность
Войдите, чтобы решить →