LeetCode 60. Permutation Sequence

来源:互联网 发布:龙与地下城游戏 知乎 编辑:程序博客网 时间:2024/06/04 19:22

题意

求出1n全排列的第k个序列.

思路

康拓逆展开的模板题目

代码

class Solution {public:    string getPermutation(int n, int k) {        vector<int>f;        f.push_back(1);        for(int i = 1; i <= n; i++){            f.push_back(f[i - 1] * i);        }        vector<int>v;        for(int i = 1; i <= n;i++){            v.push_back(i);        }        k--;        string ans = "";        for(int i = n; i >= 1; i--){            int r = k % f[i - 1];            int t = k / f[i - 1];            k = r;            sort(v.begin(), v.end());            ans += v[t] + '0';            v.erase(v.begin() + t);        }        return ans;    }};