数组的下一个排列问题
来源:互联网 发布:kali linux教程 编辑:程序博客网 时间:2024/06/05 17:33
思路 :
1 用STL 函数 next_permutation();
代码:
void nextPermutation(vector<int> &num) { next_permutation(num.begin(), num.end()); }
2如果 数组是降序排列的,则返回反转数组。否则从前向后找到第一个升序对,然后在从后向前找到比当前位置大值,交换,再反转后面的数组。
代码:
void nextPermutation(vector<int> &num) { if(num.size()<=1) return; int i=num.size()-1; while(i>0&&num[i]<=num[i-1]) i--; if(i==0) //说明是降序,则反转整个数组 reverse(num.begin(),num.end()); else{ int j=num.size()-1; while(j>0&&num[j]<=num[i-1]) //从后向前找出不小于num[i-1]的值 j--; swap(num[i-1],num[i]); reverse(num.begin()+i,num.end()); } }
阅读全文
0 0
- 数组的下一个排列问题
- 数组排列的问题
- 下一个排列问题 C++代码
- 数组的全排列问题
- 求数列的下一个排列
- 字典序的下一个排列
- 求给定排列的下一个排列
- 当前排列的下一个排列(leetcode31)
- [LeetCode]Next Permutation下一个排列问题
- 下一个排列
- 下一个排列
- 下一个排列
- 下一个排列
- 下一个排列
- 下一个排列
- 下一个排列
- 下一个排列
- 解答一个数组全排列的问题
- 使用HAL库、STM32CubeMX和Keil 5开发入门教程(二):GPIO
- 数据结构笔记-————归并排序
- 关于本博客
- 【头条】思科Partner Summit2017:解锁新时代的价值
- 实战记录:一次真实的线上SQL语句优化
- 数组的下一个排列问题
- Installation error: INSTALL_FAILED_VERSION_DOWNGRADE
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(二)Log4j讲解与整合
- Unity支付-IAP苹果篇
- mysql调优三步曲(慢查询、explain profile)
- web 技巧
- Opencv3 Python基础教程2_视频
- 链栈的实现
- Mybatis逆向工程的使用