LeetCode OJ--Next Permutation *
2014-06-12 20:08
106 查看
求一个排列的下一个排列。
1,2,3→
1,3,2
3,2,1→
1,2,3
1,1,5→
1,5,1
#include <iostream> #include <vector> #include <algorithm> using namespace std; class Solution{ public: void nextPermutation(vector<int> &num) { if(num.size() == 0) return; const vector<int>::reverse_iterator rfirst= num.rbegin(); const vector<int>::reverse_iterator rend = num.rend(); auto pivot = next(rfirst); while(pivot != rend && *pivot >= *prev(pivot)) { ++pivot; } if(pivot == rend) { reverse(rfirst,rend); return; } //find the first num great than pivot auto change = rfirst; while(*change<=*pivot) ++change; swap(*change,*pivot); reverse(rfirst,pivot); return; } }; int main() { vector<int> num; num.push_back(1); num.push_back(1); num.push_back(5); Solution myS; myS.nextPermutation(num); return 0; }
相关文章推荐
- STL全排列(next_permutation(str,str+length))and Java全排列
- next_permutation
- next_permutation用法 与 字典序
- x位全排列(next_permutation)
- STL算法:prev_permutation和next_permutation的使用
- my_next_permutation in c++
- 泛型算法系列27:next_permutation()&&prev_permutation()
- 怎样找下一个序列: next_permutation
- 1256 Anagram 全排列 next_permutation 用法
- POJ 1731 Orders 按序输出一个字符串的全排列 next_permutation()
- 几个STL算法:includes,set_difference、set_intersection、set_symmetric_difference、set_union, pre_permutation, next_permutation
- next_permutation
- A - Next_permutation
- NYOJ 366--D的小L【next_permutation水题】
- 算法学习笔记(三)——全排列生成算法:next_permutation
- 求下一个排列组合和前一个排列组合(next_permutation和pre_permutation)
- STL实现全排列 next_permutation
- stl next_permutation的全排列原理及实现样例
- 关于next_permutation的用法
- 全排列函数 nyoj 366(next_permutation()函数)