文章目录
  1. 1. Permutation Sequence

Permutation Sequence


问题是给定n和k,由n可以组成n!个阶乘,程序需要返回第k个排列的字符串。

排列的顺序是这样的,比如n为3,那么顺序是

123

132

213

231

312

321

一开始我是用正常枚举排列的方法来做,但是超时了。仔细看看可以发现相应的数学规律,第i个数是未使用过集合中的第k/(n-i)!+1个数。

比如n=3,k=5,那么第1个数是未使用过集合(1,2,3)中第5/2!=2+1=3个数,也就是3,更新k为5%2!=1。

需要注意的是如果k%(n-1)!时为0,那么将k更新为(n-1)!

文章目录
  1. 1. Permutation Sequence