60. 排列序列


来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/permutation-sequence/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
let getjiecheng = function(k){
let os = 1
for (let i = 1; i <= k; i++) {
os *= i
}
return os
}
var getPermutation = function(n, k) {
k--
let arr = [] //这个数组必须得是排好序的 正序
for (let i =1 ;i <= n; i++ ){
arr.push(i)
}
let jc = getjiecheng(arr.length-1)
let arr2 = [] // 用来接收数据
let o = -1
while( arr.length >1 && k !=0){
o =Math.floor( k/ jc ) ;
k = k - o * jc;
jc = jc/(arr.length-1);
arr2 =arr2.concat( arr.splice(o,1) ) // concat算法是copy一个新数组,不是在原数组修改,我太难了
}
arr2 =arr2.concat(arr)
return arr2.join('')
};
console.log( getPermutation(4 ,9) );

浙公网安备 33010602011771号