加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Leetcode 60 Permutation Sequence

发布时间:2020-12-13 21:14:23 所属栏目:PHP教程 来源:网络整理
导读: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): 123 132 213 231 312 321 Given n and k ,return the k th permutation

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; } };


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读