Войти Регистрация
Алгоритмы

169. Недавно смотрели: убрать повторы

Лёгкая

Дан список артикулов items в порядке просмотра. Верните список, где каждый артикул встречается один раз — на месте своего первого появления.

Встроенное «множество из списка» без сохранения порядка не подходит: порядок должен остаться как в исходном списке.

В работе: Блок «Вы недавно смотрели» в карточке товара: человек открыл кроссовки пять раз, а показать их нужно один.

Пример 1

Ввод
items = [1, 1, 3, 4, 5, 6, 7, 7, 8]
Вывод
[1, 3, 4, 5, 6, 7, 8]

Пример из задачи на собеседовании.

Пример 2

Ввод
items = [30, 10, 30, 20, 10]
Вывод
[30, 10, 20]

Порядок первых вхождений: 30, 10, 20.

Ограничения

  • 0 ≤ длина items ≤ 10⁶
  • 0 ≤ items[i] ≤ 10⁹
  • Лимит — 2 с на тест (1500 мс).
Как вызывается ваш код Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула. print() и console.log() уходят в консоль.
def dedupe(items):
Хеш-таблицаМассивцельO(n)

Источник: Wildberries, фронтенд, репозиторий кандидата на GitHub. Условие пересказано своими словами.