給出集合[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 輸出 ...