Код Middle Массивы и хеш-таблицы обновлено

Ускорить фильтрацию по списку кодов

Условие

Функция отбирает из массива объектов те, чей code есть во втором массиве, в порядке второго массива. Текущая реализация - два вложенных цикла. Перепиши за линейное время, сохранив порядок по второму массиву.

Что проверяют тесты

  • порядок по второму массиву

  • отсутствующие коды пропускаются

  • пустые входы

  • первое вхождение при дублях

  • линейное время

Как подойти

Задача с разбором чужого кода: интервьюер спрашивает, почему медленно, какой цикл лишний и как ускорить. Ответ - предварительная индексация в Map: O(n+m) вместо O(n·m). Внешний цикл остаётся по второму массиву, потому что именно он задаёт порядок результата - это часть контракта, которую легко нечаянно сломать. Дубли кодов: сохраняем первое вхождение, как делал break в исходном коде.

Подсказки: 2
  1. Индексируй первый массив по коду один раз.
  2. Порядок результата задаётся внешним циклом по второму массиву.

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

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