一、题目描述
给定参数n,从1到n会有n个整数:1,2,3,…,n,这n个数字共有n!种排列。按大小顺序升序列出所有排列的情况,并一一标记当n=3时,所有排列如下“123”,“132,“213”,“231”,“312”,“321”
给定n和k,返回第k个排列。
二、输入描述
输入两行,第一行为n,第二行为k,给定n的范围是[1,9],给定k的范围是[1,n!]。
三、输出描述
输出排在第k位置的数字。
四、测试用例
测试用例1:
1、输入
2
2
2、输出
21
3、说明
排列为“12”和“21”,第2个是“21”。
测试用例2:
1、输入
1
1
2、输出
1
3、说明
只有一个排列,直接返回。
五、解题思路
- 输入两行,第一行为n,第二行为k;
- 全排列递归算法,从第一个数开始; <
该博客详细介绍了如何解决华为OD机试中的一道题目,即根据输入的n和k找出第k个升序排列。通过全排列递归算法,对1到n的整数进行排列,分析了以不同数字开头的排列数量,并提供了Java代码实现及效果展示。
订阅专栏 解锁全文
2618





