标签:app color 个数 函数 cto stringbu java 数字 append
class Solution { public: string getPermutation(int n, int k) { string s="123456789"; vector<int> f(n,1); //声明一个初始值都为1,长度为n的数组 string ans; for(int i=1;i<n;i++)f[i]=f[i-1]*i; //这里用一个vector来表示(n-1)的阶乘 k--; for(int i=n;i>=1;i--){ int index=k/f[i-1]; k%=f[i-1]; ans.push_backdex]); s.erase(index,1); //erease 的用法,erase(index,num) num为剔除的个数 } return ans; }
Java版:
class Solution { public String getPermutation(int n, int k) { List<Integer> list=new ArrayList(); StringBuilder sb=new StringBuilder(); for(int i=1;i<=n;i++){ list.add(i); } k--; int fac=1; for(int i=n;i>=1;i--){ fac=fac*i; } for(int i=n;i>=1;i--){ fac/=i; //获得(n-1)!的阶乘 int index=k/fac; k%=fac; sb.append(list.get(index)); list.remove(index); } return sb.toString(); } }
标签:app color 个数 函数 cto stringbu java 数字 append
原文地址:https://www.cnblogs.com/patatoforsyj/p/9682687.html