Ctrl K

Слияние в запасной хвост

Лёгкая
Даны два отсортированных по неубыванию массива. В массиве target значимы только первые filled элементов, а за ними оставлен запасной хвост ровно на extra_len мест (там лежат нули, их нужно игнорировать). Массив extra содержит extra_len элементов. Перенесите все элементы extra в target так, чтобы весь target оказался отсортирован по неубыванию. Верните получившийся target. Попробуйте уложиться в O(filled + extra_len) без дополнительного массива.
Пример 1
target=[2, 6, 9, 0, 0], filled=3, extra=[4, 10], extra_len=2 → [2, 4, 6, 9, 10]

После слияния target становится [2, 4, 6, 9, 10] — его и нужно вернуть.

Пример 2
target=[0, 0], filled=0, extra=[-3, 5], extra_len=2 → [-3, 5]

Своих элементов в target нет, туда просто переезжает extra: [-3, 5].

Пример 3
target=[1, 1, 7], filled=3, extra=[], extra_len=0 → [1, 1, 7]
Ограничения
  • len(target) = filled + extra_len
  • len(extra) = extra_len
  • 0 ≤ filled, extra_len ≤ 200
  • 1 ≤ filled + extra_len ≤ 200
  • -10⁹ ≤ target[i], extra[j] ≤ 10⁹
  • Первые filled элементов target и весь extra отсортированы по неубыванию
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЗначения в обоих списках ЛёгкаяОбщие значения с повторами ЛёгкаяКуски торта для гостей ЛёгкаяЧётные налево ЛёгкаяЧётность на своих местах Лёгкая
загружаем Python…
Вход
target=[2, 6, 9, 0, 0], filled=3, extra=[4, 10], extra_len=2
Ожидается
[2, 4, 6, 9, 10]

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