Next Permutation
来源:互联网 发布:c语言指针例子 编辑:程序博客网 时间:2024/05/17 02:06
Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers.
If such arrangement is not possible, it must rearrange it as the lowest possible order (ie, sorted in ascending order).
The replacement must be in-place, do not allocate extra memory.
Here are some examples. Inputs are in the left-hand column and its corresponding outputs are in the right-hand column.1,2,3
→ 1,3,2
3,2,1
→ 1,2,3
1,1,5
→ 1,5,1
#include<iostream>#include<vector>#include<algorithm>#include<iterator>#include<ostream>using namespace std;void nextPermutation(vector<int> &num) {vector<int>::reverse_iterator pre_iter;for (pre_iter = num.rbegin()+1;pre_iter!=num.rend();++pre_iter){vector<int>::reverse_iterator tmp_iter =pre_iter;advance(tmp_iter,-1);if (*pre_iter<*tmp_iter)break;}if (pre_iter==num.rend()){reverse(num.begin(),num.end());return;}vector<int>::reverse_iterator las_iterator;for (las_iterator = num.rbegin();las_iterator!=pre_iter;++las_iterator){if (*las_iterator>*pre_iter)break;}iter_swap(pre_iter,las_iterator);reverse((pre_iter++).base(),num.end());}
0 0
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Next Permutation
- Ar开发工具Demo
- java 后台获取访问客户端ip地址
- 黑马程序员——面向对象(异常-下)
- VIM 安装配置目录树或文件浏览插件-NERD tree
- sizeof()用法汇总
- Next Permutation
- 2014游戏开发者大会 · 中国(GDC China)
- Go 语言中的 new() 和 make()的区别
- JasperReports报表的开发流程
- 图片下载方法
- PDF如何转换为PPT方法一览
- fragment 横屏切换 view 重叠
- xcode6制作动态及静态framework
- IOS多任务简单图示