大家好,今天我们要聊的是LeetCode上的第60题:“排列序列”。这道题目看似简单,却充满了挑战,就像在一个排列迷宫中找到唯一的出路。话不多说,让我们开始这次的解题之旅吧!
题目描述
给出集合 [1,2,3,…,n]
,其所有元素共有 n!
种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3
时,所有排列如下:
- “123”
- “132”
- “213”
- “231”
- “312”
- “321”
给定 n
和 k
,返回第 k
个排列。
示例:
输入: n = 3, k = 3
输出: "213"
输入: n = 4, k = 9
输出: "2314"
解题思路
这道题的核心是找到第 k
个排列。我们可以将其分为以下几个步骤:
- 计算阶乘:我们需要计算
n!
以及n
的所有子阶乘,如n-1
的阶乘,n-2
的阶乘,以此类推。 - 确定每一位数字:通过
k
值&#