leetcode 60. 第k个排列 康托展开

库函数 algorithm里面的next_permutation
效率不高

#include 
#include 
#include 
#include 
using namespace std;


class Solution {
public:
    string getPermutation(int n, int k) {
        vector<int> ve(n);
        string ret = "";
        for(int i=0;i<n;i++){
            ve[i] = i+1;
        }
        do{
           k--;
        }while( k>0 && next_permutation( ve.begin(),ve.end()));
        for(int i=0;i<n;i++){
            ret += ve[i]+'0';
        }
        return ret;

    }
};

int main()
{
    Solution Solution1;
    cout<<Solution1.getPermutation(3,3)<<endl;
    return 0;
}

在这里插入图片描述

康托展开
康托展开是一个全排列到一个自然数的双射
https://baike.baidu.com/item/康托展开/7968428?fr=aladdin

你可能感兴趣的:(leetcode)