S
Swift | LeetCode
@easy_swift_task1.4K подп.
90просмотров
6.4%от подписчиков
18 марта 2026 г.
statsScore: 99
Задача: 60. Permutation Sequence Сложность: hard Множество [1, 2, 3, ..., n] содержит в общей сложности n! уникальных перестановок. Списком и маркировкой всех перестановок по порядку, мы получаем следующую последовательность для n = 3: "123" "132" "213" "231" "312" "321" Дано n и k, верните k-ю перестановку последовательности. Пример: Input: n = 3, k = 3 Output: "213" 👨‍💻 Алгоритм: 1⃣Сгенерируйте входной массив nums чисел от 1 до N. 2⃣Вычислите все факториальные основы от 0 до (N−1)!. 3⃣Уменьшите k на 1, чтобы значение попало в интервал (0, N!−1). 😎 Решение: class Solution { func getPermutation(_ n: Int, _ k: Int) -> String { var factorials = Int var nums = Character for i in 1..<n { factorials[i] = factorials[i - 1] i nums.append(Character(String(i + 1))) } var k = k - 1 var result = "" for i in stride(from: n - 1, through: 0, by: -1) { let idx = k / factorials[i] k -= idx factorials[i] result.append(nums[idx]) nums.remove(at: idx) } return result } } Ставь 👍 и забирай 📚 Базу знаний
90
просмотров
1194
символов
Да
эмодзи
Нет
медиа

Другие посты @easy_swift_task

Все посты канала →
Задача: 60. Permutation Sequence Сложность: hard Множество [ — @easy_swift_task | PostSniper