自然数n的数列 字典排序:求给定排列的下一个排列
来源:互联网 发布:电子文档软件 编辑:程序博客网 时间:2024/05/16 14:52
题目:
给定一个自然数n,我们可以知道它的全排列。比如n=3,则数字1,2,3的全排列有6个,分别是{1,2,3},{1,3,2},{2,1,3},{2,3,1},{3,1,2},{3,2,1}。
把这些排列可以按字典顺序从小到大排序,问给出一个数字N,和这个n个数的一个排列,求出该排列的一下个排列是多少?
比如 n是3,给定的序列是'123',则所求的序列是'132'。
解决思想:
1.从数列的右边向左寻找连续递增序列, 例如对于:{1,3,5,4,2},其中5-4-2即为递增序列。
2.从上述序列中找一个比它前面的数也就3大,但是在这个序列中是最小数,本例子中该数为4。然后交换这两个数。于是{1,3,5,4,2}->{1,4,5,3,2},此时交换后上面的递增序列依然是递增序列。
3.把新的递增序列(5,3,2)做一个逆序排序,即:{5,3,2} -> {2,3,5}。
4: 然后和前面的数字串合并一起就是所求的答案,{1,4 }+ {2,3,5} => {1,4,2,3,5}
阅读全文
0 0
- 自然数n的数列 字典排序:求给定排列的下一个排列
- 求给定排列的下一个排列
- 求数列的下一个排列
- 求n位全排列字典排序后,给定序列的下一序列
- 求n位全排列字典排序后,给定序列的下一序列
- 求自然数n的自然排列
- 求字典序的下一个全排列
- 字典序的下一个排列
- 暴力求解法_枚举排列(生成1~n 的排列,生成可重集的排列,下一个排列)
- POJ 1146 求字符串的下一个排列
- next_permutation求下一个排列的原理
- 求字典序的下一个排列(对应lc的Next Permutation)
- 生成1~n的排列 生成可重集的排列 下一个排列
- DFS求一个有序数列的排列
- 求数列的全排列(递归解法)
- 求任意数列的全排列
- 字典序全排列输出下一个的java实现
- 获取输入字符串的下一个字典序排列
- html基本概念
- RCNN学习笔记(1)-RCNN-Rich feature hierarchies for accurate object detection and semantic segmentation论文
- 一个alpha量化的开源项目--Signal_Report_Platform(单因子测试报告)
- 使用HTML和CSS写登录界面
- Spring入门(Schema-based AOP其四)
- 自然数n的数列 字典排序:求给定排列的下一个排列
- 10月3日 c语言 输入4*5矩阵
- GitBash Vim 启动失败 Vim: Caught deadly signal SEGV
- bzoj1051 [HAOI2006]受欢迎的牛
- 深度学习基础(五)--聚类
- Maven工程中nexus私服配置
- C++的静态成员函数指针
- 使用HTML/CSS写注册界面
- Flask项目配置文件