Ctrl K

Две сети на прямой

Средняя
Рыбы замерли на прямой: positions[i] — координата i-й рыбы. Массив отсортирован по неубыванию, в одной точке может быть несколько рыб. Вы забрасываете две сети. Каждая сеть — отрезок [a, a + width] с целыми концами; рыба поймана, если её координата лежит хотя бы в одном из двух отрезков (концы включаются). Сети могут пересекаться. Верните наибольшее число рыб, которое можно поймать.
Пример 1
positions=[2, 3, 3, 7, 8, 12, 13, 14], width=1 → 5

Сеть [2, 3] накрывает три рыбы, сеть [7, 8] (или [12, 13]) — ещё две. Итого 5.

Пример 2
positions=[4, 4, 4], width=0 → 3

Сеть нулевой ширины в точке 4 ловит все три рыбы.

Пример 3
positions=[1, 5, 9, 20, 21], width=4 → 4
Ограничения
  • 1 ≤ len(positions) ≤ 10⁵
  • 1 ≤ positions[i] ≤ 10⁹
  • positions отсортирован по неубыванию
  • 0 ≤ width ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый короткий рывок Средняяk ближайших значений СредняяОтрезки с маленьким произведением СредняяСамый длинный общий кусок СредняяСамая длинная серия единиц с k правками Средняя
загружаем Python…
Вход
positions=[2, 3, 3, 7, 8, 12, 13, 14], width=1
Ожидается
5

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 101 тест на сервере, включая скрытые.