Ускорить фильтрацию по списку кодов
Условие
Функция отбирает из массива объектов те, чей code есть во втором массиве, в порядке второго массива. Текущая реализация - два вложенных цикла. Перепиши за линейное время, сохранив порядок по второму массиву.
Что проверяют тесты
порядок по второму массиву
отсутствующие коды пропускаются
пустые входы
первое вхождение при дублях
линейное время
Как подойти
Задача с разбором чужого кода: интервьюер спрашивает, почему медленно, какой цикл лишний и как ускорить. Ответ - предварительная индексация в Map: O(n+m) вместо O(n·m). Внешний цикл остаётся по второму массиву, потому что именно он задаёт порядок результата - это часть контракта, которую легко нечаянно сломать. Дубли кодов: сохраняем первое вхождение, как делал break в исходном коде.
Подсказки: 2
- Индексируй первый массив по коду один раз.
- Порядок результата задаётся внешним циклом по второму массиву.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.