Программа курса:
Задача 15: Показывайте карты в возрастающем порядке
Напишите определение функции deckRevealedIncreasing(deck), которая принимает массив целых чисел deck, представляющий уникальные значения карт в колоде.
Есть колода карт, где каждая карта имеет уникальное целое число. Число на карте с индексом i равно deck[i].
Вы можете упорядочить колоду в любом порядке. Изначально все карты находятся в колоде, повернутые рубашкой вверх (неоткрытые).
Вы выполняете следующие шаги, пока все карты не будут открыты:
- Берете верхнюю карту колоды, открываете ее и убираете из колоды.
- Если в колоде остаются карты, перемещаете следующую верхнюю карту на дно колоды.
- Если остались неоткрытые карты, возвращаетесь к шагу 1. Иначе останавливаетесь.
Верните такой порядок в колоде, чтобы карты открывались в возрастающем порядке.
Обратите внимание, что первый элемент результата считается верхом колоды.
Примеры
Пример 1:
Ввод: deck = [17,13,11,2,3,5,7]
Вывод: [2,13,3,11,5,17,7]
Пояснение:
Мы упорядочим колоду следующим образом: [17,13,11,2,3,5,7] (порядок входного массива не важен), затем изменим порядок на [2,13,3,11,5,17,7], где 2 находится сверху.
Далее выполняются шаги:
- Открываем 2, перемещаем 13 вниз. Колода:
[3,11,5,17,7,13]. - Открываем 3, перемещаем 11 вниз. Колода:
[5,17,7,13,11]. - Открываем 5, перемещаем 17 вниз. Колода:
[7,13,11,17]. - Открываем 7, перемещаем 13 вниз. Колода:
[11,17,13]. - Открываем 11, перемещаем 17 вниз. Колода:
[13,17]. - Открываем 13, перемещаем 17 вниз. Колода:
[17]. - Открываем 17.
Все карты открыты в возрастающем порядке, что подтверждает правильность результата.
Пример 2:
Ввод: deck = [1,1000]
Вывод: [1,1000]
Пояснение:
Уже открываются в порядке возрастания.