首页 > 其他分享 >LeetCode60. 排列序列

LeetCode60. 排列序列

时间:2023-03-25 16:33:24浏览次数:37  
标签:LeetCode60 排列 int dfs init str 序列 fac

class Solution {
public:
    int fac[10];
    void init()
    {
        fac[0]=1;
        fac[1]=1;
        for(int i=2;i<10;i++)
            fac[i]=fac[i-1]*i;
        return;
    }
    string str;
    bool visited[10];
    void dfs(int u,int n,int k)//当前枚举到了第u位
    {
        if(u==n+1)
                return;
        for(int i=1;i<=n;i++)//枚举第u位选什么数字
        {
            if(visited[i])  continue;
            if(k>fac[n-u])
                k-=fac[n-u];
            else
            {
                visited[i]=true;
                str+=to_string(i);
                dfs(u+1,n,k);
                break;
            }
        }
    }
    string getPermutation(int n, int k) {
        init();
        dfs(1,n,k);
        return str;
    }
};

标签:LeetCode60,排列,int,dfs,init,str,序列,fac
From: https://www.cnblogs.com/tangxibomb/p/17255001.html

相关文章