LeetCode 60. 排列序列*

LeetCode 60. 排列序列*,第1张

具体思路:

全排列,计数,以前好像做过;

又卡了一下,后面二刷一下;

具体代码:
class Solution {
public:
    string getPermutation(int n, int k) {
        vector<char>vec;
        int num=1;
        for(int i=1;i<=n;i++){
            vec.push_back('0'+i);
            num*=i;
        }
        string ret="";
        int cnt=0;
        k--;
        while(k!=0){
            num/=n-cnt;
            cnt++;
            int index=k/num;
            ret+=vec[index];
            vec.erase(vec.begin()+index);
            k=k%num;
        }
        for(auto& ch:vec){
            ret.push_back(ch);
        }
        return ret;
    }
};

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/868151.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存