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) );

posted @ 2020-11-26 14:49  执着的风  阅读(73)  评论(0)    收藏  举报