首页 > 试题广场 >

返回第k个排列

[编程题]返回第k个排列
  • 热度指数:10822 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
集合[1,2,3,…,n]一共有n!种不同的排列
按字典序列出所有的排列并且给这些排列标上序号
我们就会得到以下的序列(以n=3为例)
  1. "123"
  2. "132"
  3. "213"
  4. "231"
  5. "312"
  6. "321"
现在给出n和k,请返回第k个排列
注意:n在1到9之间

示例1

输入

3,1

输出

"123"
头像 so_what_xxxx
发表于 2021-02-23 14:40:49
//递归确定所在层数,相当简洁和快速的写法private boolean[] mark=null; private int[] data=null; public String getPermutation (int n, int k) { // write code he 展开全文
头像 华科不平凡
发表于 2020-09-26 18:30:08
C++求排列有三种方法: 利用库函数next_permutation 基于交换 基于回溯 下面用库函数next_permutation求: // // Created by jt on 2020/9/26. // #include <vector> #include <stri 展开全文