Ctrl K

Общая медиана двух массивов

Сложная
Даны два массива целых чисел left и right, каждый отсортирован по неубыванию. Один из них может быть пустым, но не оба сразу. Верните медиану всех чисел из обоих массивов вместе: если общее количество нечётное — это центральный элемент объединённой отсортированной последовательности, если чётное — среднее арифметическое двух центральных. Ответ — число с плавающей точкой. Если m и n — длины массивов, постарайтесь уложиться в O(log(m + n)).
Пример 1
left=[2, 9], right=[4, 5, 11] → 5.0

Вместе получается [2, 4, 5, 9, 11], посередине стоит 5.

Пример 2
left=[-6, 0, 8], right=[1] → 0.5

Вместе: [-6, 0, 1, 8]. Элементов чётное число, поэтому медиана — среднее двух центральных: (0 + 1) / 2 = 0.5.

Пример 3
left=[], right=[3, 7] → 5.0

Первый массив пуст, медиана второго — (3 + 7) / 2 = 5.

Ограничения
  • 0 ≤ len(left) ≤ 1000
  • 0 ≤ len(right) ≤ 1000
  • 1 ≤ len(left) + len(right) ≤ 2000
  • -10⁶ ≤ left[i], right[i] ≤ 10⁶
  • Оба массива отсортированы по неубыванию
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиМеньшие справа СложнаяСуммы отрезков в заданной полосе СложнаяПары с крутым спадом СложнаяЦена расстановки на полке СложнаяТройки, согласные в обоих рейтингах Сложная
загружаем Python…
Вход
left=[2, 9], right=[4, 5, 11]
Ожидается
5.0

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