Permutation Sequence

来源:互联网 发布:易建联nba数据统计 编辑:程序博客网 时间:2024/05/29 16:54
class Solution {private:    int* cache;    vector<int> nums;    void calcPerm(int curPos,int n,int k,string& res)    {        if(curPos>n)        {            return;        }        int step=cache[n-curPos];        int choice=n-curPos+1;        for(int i=1;i<=choice;++i)        {            if(k<=i*step)            {                int curNum=nums[i-1];                res.append(1,'0'+curNum);                nums.erase(nums.begin()+(i-1));                calcPerm(curPos+1,n,k-(i-1)*step,res);                break;            }        }            }public:    string getPermutation(int n, int k) {        cache=new int[n+1];        cache[0]=1;        for(int i=1;i<=n;++i)        {            cache[i]=cache[i-1]*i;            nums.push_back(i);        }        string res;        calcPerm(1,n,k,res);        return res;    }};

0 0
原创粉丝点击