js 第n個排列

2021-10-24 08:49:05 字數 821 閱讀 9118

給出集合 [1,2,3,…,n],其所有元素共有 n! 種排列。

按大小順序列出所有排列情況,並一一標記,當 n = 3 時, 所有排列如下:

「123」

「132」

「213」

「231」

「312」

「321」

給定 n 和 k,返回第 k 個排列

以k=3為例,觀察資料我們可以分成這樣三組資料

(1)「123」 「132」

(2)「213」 「231」

(3)「312」 「321」

我們先確定k在哪一組,顯然k應在第二組(3/2向上取整)

再分為兩組(已經確定以2開頭,此時k = k - 2 * 1 = 1)

(1)「13」

(2)「31」

k/1向上取整得1,要找的在第一組

了解過程以後我們需要尋找規律:(其實就是全排列)

實現**如下

/**

* @param n

* @param k

* @return

*/var

getpermutation

=function

(n, k)

const nums =

;//數字上可取的值

for(

let i =

1; i <= n; i++

)let res ='';

for(

let i = n -

1; i >=

0; i--

)return res;

};

輸出排列的第n個數

華電北風吹 最後修改日期 2015 8 6 輸入 乙個整數n和乙個字串鍊錶 預設鍊錶已經由小到大排序好,例如 1,2,3,4,5,6 這個主要是用來計算排列組合次序的,並不是嚴格的排序,但是是預設的順序也行,例如 a,b,c,1,2,3 輸出 輸入鍊錶從最小的排列 輸入排列預設是最小的 開始的第n個...

第k個排列

給出集合 1,2,3,n 其所有元素共有 n 種排列。按大小順序列出所有排列情況,並一一標記,當 n 3 時,所有排列如下 123 132 213 231 312 321 給定 n 和 k,返回第 k 個排列。說明 public string getpermutation int n,int k l...

第k個排列

給出集合 1,2,3,n 其所有元素共有 n 種排列。按大小順序列出所有排列情況,並一一標記,當 n 3 時,所有排列如下 123 132 213 231 312 321 給定 n 和 k,返回第 k 個排列。說明 給定 n 的範圍是 1,9 給定 k 的範圍是 1,n 示例 1 輸入 n 3,k ...