Код Senior Два указателя обновлено

Слияние в первый массив

Условие

Массив a содержит m значащих элементов и запас пустых мест в конце. Влей в него b (n элементов), сохранив порядок. Верни a.

Примеры

mergeInto([1, 2, 3, 0, 0, 0], 3, [2, 5, 6], 3) // [1, 2, 2, 3, 5, 6]
mergeInto([0], 0, [1], 1) // [1]
mergeInto([1], 1, [], 0) // [1]

Как подойти

Заполнение с начала потребовало бы сдвигать хвост. С конца свободное место есть всегда, поэтому O(m+n) времени и O(1) памяти. Цикл идёт по j: когда b закончился, остаток a уже стоит правильно.

Подсказки: 2
  1. Заполняй с конца - там гарантированно свободно.
  2. Условие цикла по второму массиву: остаток первого уже на месте.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.