Сложность: medium
Вам дана колода целочисленных массивов. Имеется колода карт, в которой каждая карта имеет уникальное целое число. Целое число на i-й карте - deck[i]. Вы можете упорядочить колоду в любом порядке. Изначально все карты в одной колоде лежат лицевой стороной вниз (нераскрытыми). Вы будете выполнять следующие действия несколько раз, пока все карты не будут раскрыты: возьмите верхнюю карту колоды, раскройте ее и выньте из колоды. Если в колоде еще есть карты, положите следующую верхнюю карту колоды на дно колоды. Если еще есть нераскрытые карты, вернитесь к шагу 1. В противном случае остановитесь. Верните порядок колоды, при котором карты раскрываются в порядке возрастания. Обратите внимание, что первая запись в ответе считается верхом колоды.
Пример:
Input: deck = [17,13,11,2,3,5,7]
Output: [2,13,3,11,5,17,7]
👨💻 Алгоритм:
1⃣Создать индексы карт в порядке, в котором они будут раскрываться.
2⃣Отсортировать колоду карт по возрастанию.
3⃣Отсортировать колоду карт по возрастанию.
😎 Решение:
class Solution {
func deckRevealedIncreasing(_ deck: [Int]) -> [Int] {
var index = Array(deck.indices)
var result = [Int](repeating: 0, count: deck.count)
let sortedDeck = deck.sorted()
for card in sortedDeck {
result[index.removeFirst()] = card
if !index.isEmpty {
index.append(index.removeFirst())
}
}
return result
}
}Ставь 👍 и забирай 📚 Базу знаний