LeetCode 第k個排列

2021-09-20 18:41:15 字數 902 閱讀 6445

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

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

"123""132""213""231""312""321"

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

說明:

示例 1:

輸入:n = 3, k = 3輸出:"213"
示例 2:

輸入:n = 4, k = 9輸出:"2314"
今天看到了這道題,同時也學習了乙個新東西,那就是康托展開和逆康托展開,同時也在感嘆數學的精美和奇妙,下面就這個題說一下逆康托展開的主要思路:

n=4,k=15的時候,我們開始逐步確認每一位的數字應該是多少

所以最後的結果就為3214,所以根據這個思路給出下面的ac**:

#include#include#includeusing namespace std;

string getpermutation(int n, int k) ;

string result;

string candidates="123456789";

k -=1;

for(int i=n-1;i>=0;--i)

return result;

}

int main()

Leetcode 第K個排列

給出集合 1,2,3,n 其所有元素共有 n 種排列。按大小順序列出所有排列情況,並一一標記,當 n 3 時,所有排列如下 123 132 213 231 312 321 給定 n 和 k,返回第 k 個排列。首先,我們先理解清楚全排列的過程。給定n 3,則123的全排列有 具體先固定住1,對23進...

LeetCode 第k個排列

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

60 第k個排列(leetcode)

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