给出集合 [1,2,3,...,n],其所有元素共有 n! 种排列。
按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:
- "123"
- "132"
- "213"
- "231"
- "312"
- "321"
给定 n 和 k,返回第 k 个排列。
示例 1:
示例 2:
输入:n = 4, k = 9
输出:"2314"
示例 3:
提示:
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/permutation-sequence
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
constgetPermutation=(n,k)=>{constnums=newArray(n).fill().map((_,i)=>i+1)consttotalArr=[0,1]for(leti=2;i<=n;i++){totalArr[i]=totalArr[i-1]*i}lettotal=totalArr[n],res=''while(nums.length){constindex=Math.ceil(k/total*n)-1constnum=nums.splice(index,1)[0]res+=numk=k%(total/n)||(total/n)total=totalArr[--n]}returnres}
给出集合 [1,2,3,...,n],其所有元素共有 n! 种排列。
按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:
给定 n 和 k,返回第 k 个排列。
示例 1:
示例 2:
示例 3:
提示: