国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > php教程 > Leetcode 60 Permutation Sequence

Leetcode 60 Permutation Sequence

来源:程序员人生   发布时间:2016-09-30 11:06:45 阅读次数:2501次

The set [1,2,3,…,n] contains a total of n! unique permutations.

By listing and labeling all of the permutations in order,
We get the following sequence (ie, for n = 3):

  1. "123"
  2. "132"
  3. "213"
  4. "231"
  5. "312"
  6. "321"

Given n and k, return the kth permutation sequence.

Note: Given n will be between 1 and 9 inclusive.

输出长度为n的数字串字典序的第K个串。

每位定下来以后,后面共有(n⑴)!个排列,应用这个特点反复减k,让k去逼近1。

class Solution { public: string getPermutation(int n, int k) { int mp[10]; mp[0]=mp[1]=1; vector<int> v(1,1); for(int i=2;i<10;i++) { mp[i]=mp[i⑴]*i; v.push_back(i); } string result; while(n--) { vector<int>::iterator it=v.begin(); while(k>mp[n]) { k-=mp[n]; it++; } result+=('0'+*it); v.erase(it); } return result; } };


生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生