2019年8月3日,网易校招 算法工程师岗位 大题第一道
刚才笔试,一道题没做出来, 第一道题,写出来了,时间复杂度还太大,测试超时了。很不甘心,于是交卷后又重新思考了一下。其实很简单
题目:有一天,小易把1到n的所有排列按字典序列排成一排。小易从中选出了一个排列,假设它是正数第Q个排列,小易希望你能回答他倒数第Q个排列是什么。
例如1到3的所有排列是:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1若小易选出的排列是 1 2 3 ,则Q=1,而你应该输出排列3 2 1
输入描述:
第一行数字n,表示排列长度接下来一行n个数字,表示选出的排列1<= n <= 300000
输出描述:
一行n个数字,表示所求的排列。
示例1:
输入
3
1 2 3输出:
3 2 1
示例2:
输入
5
3 1 5 2 4输出:
3 5 1 4 2