Ctrl K

Карточки в картотеке

Средняя
В картотеке лежит стопка из cards карточек с номерами от 1 до cards; сначала они лежат по порядку: [1, 2, ..., cards], карточка 1 сверху. Библиотекарь по очереди обрабатывает запросы из массива requests. Для запроса v он находит карточку с номером v, записывает её позицию в стопке (верхняя карточка — позиция 0), вынимает её и кладёт на самый верх стопки. Остальные карточки сохраняют свой взаимный порядок. Верните массив записанных позиций — по одной на каждый запрос, в порядке обработки.
Пример 1
requests=[2, 2, 4, 1], cards=4 → [1, 0, 3, 2]

Стопка [1, 2, 3, 4]. Карточка 2 лежит на позиции 1, после неё стопка [2, 1, 3, 4]; теперь 2 уже сверху — позиция 0. Карточка 4 на позиции 3, стопка становится [4, 2, 1, 3], и наконец 1 лежит на позиции 2.

Пример 2
requests=[3], cards=3 → [2]

Один запрос: карточка 3 лежит в самом низу стопки [1, 2, 3], на позиции 2.

Пример 3
requests=[1, 1, 1], cards=2 → [0, 0, 0]

Карточка 1 изначально сверху и после каждого запроса снова возвращается наверх, поэтому все ответы — 0.

Ограничения
  • 1 ≤ cards ≤ 1000
  • 1 ≤ requests.length ≤ 1000
  • 1 ≤ requests[i] ≤ cards
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиДве стопки по числу больших СложнаяЧтение по спирали СредняяКвадрат, пронумерованный по спирали СредняяСледующий шаг колонии клеток СредняяОчередь по записям о росте Средняя
загружаем Python…
Вход
requests=[2, 2, 4, 1], cards=4
Ожидается
[1, 0, 3, 2]

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