全排列算法c++实现
来源:互联网 发布:怎样提高淘宝买家信用 编辑:程序博客网 时间:2024/04/29 11:08
问题:
- Given a collection of numbers, return all possible permutations.
- For example,
- [1,2,3] have the following permutations:
- [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], and [3,2,1].
Given a collection of numbers, return all possible permutations.For example,[1,2,3] have the following permutations:[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], and [3,2,1].
Solution:
- #include <iostream>
- #include<vector>
- #include<algorithm>
- using namespace std;
- class Solution {
- public:
- vector<vector<int> > permute(vector<int> &num)
- {
- vector<vector<int> > resultVector;
- sort(num.begin(),num.end());//STL algorithm funtion
- do
- {
- vector<int> vOne;
- for(int i=0;i<num.size();i++)
- vOne.push_back(num[i]);
- resultVector.push_back(vOne);
- }while(next_permutation(num.begin(),num.end()));//next_permutation you can find in STL
- return resultVector;
- }
- vector<vector<int> > permuteOrder(int n)
- {
- vector<int> num;
- for(int i=1;i<=n;i++)
- num.push_back(i);
- return permute(num);
- }
- void printCollection(vector<vector<int> > &vResult)
- {
- for(vector<vector<int> >::const_iterator iter = vResult.begin();iter!=vResult.end();iter++)
- {
- for(vector<int>::const_iterator it = (*iter).begin();it!=(*iter).end();it++)
- {
- cout<<*it<<" ";
- }
- cout<<endl;
- }
- }
- };
- int main()
- {
- vector<int> num ;
- num.push_back(1);
- num.push_back(3);
- num.push_back(2);
- Solution so;
- cout<<"permutation"<<endl;
- vector<vector<int> > vResult = so.permute(num);
- so.printCollection(vResult);
- cout<<"order permutation"<<endl;
- vector<vector<int> > vOrderResult = so.permuteOrder(3);
- so.printCollection(vOrderResult);
- return 0;
- }
#include <iostream>#include<vector>#include<algorithm>using namespace std;class Solution {public: vector<vector<int> > permute(vector<int> &num) { vector<vector<int> > resultVector; sort(num.begin(),num.end());//STL algorithm funtion do { vector<int> vOne; for(int i=0;i<num.size();i++) vOne.push_back(num[i]); resultVector.push_back(vOne); }while(next_permutation(num.begin(),num.end()));//next_permutation you can find in STL return resultVector; } vector<vector<int> > permuteOrder(int n) { vector<int> num; for(int i=1;i<=n;i++) num.push_back(i); return permute(num); } void printCollection(vector<vector<int> > &vResult) { for(vector<vector<int> >::const_iterator iter = vResult.begin();iter!=vResult.end();iter++) { for(vector<int>::const_iterator it = (*iter).begin();it!=(*iter).end();it++) { cout<<*it<<" "; } cout<<endl; } }};int main(){ vector<int> num ; num.push_back(1); num.push_back(3); num.push_back(2); Solution so; cout<<"permutation"<<endl; vector<vector<int> > vResult = so.permute(num); so.printCollection(vResult); cout<<"order permutation"<<endl; vector<vector<int> > vOrderResult = so.permuteOrder(3); so.printCollection(vOrderResult); return 0;}
- C语言实现全排列算法
- C语言实现的全排列算法
- C语言全排列算法实现
- C语言实现的全排列算法
- 全排列算法实现
- 全排列算法(c语言实现)acm练习
- 全排列算法(Java实现)
- 全排列算法及实现
- 递归算法实现全排列
- 全排列算法【java实现】
- 全排列算法递归实现
- 全排列算法及实现
- 【算法】递归实现全排列
- 全排列算法及实现
- 全排列算法c++实现
- 全排列算法c++实现
- 全排列算法的实现
- 全排列算法的实现
- Linux内存点滴 用户进程内存空间
- XCODE 4.5 IOS多语言设置 及NSLocalizedString和NSLocalizedStringFromTable的用法。
- 社科院:中国社会总体信任指标已跌破及格线
- 贪心 poj2709
- 膜蛋白的MD模拟
- 全排列算法c++实现
- 田中耕一:一个奇怪的诺贝尔奖获得者
- More Effective C++读书笔记9
- storm 手册
- Oracle Flashback之Flashback Transaction Query
- Apache与PHP安装配置
- HTTP 400/401/403/404/500网页错误代码是什么意思
- js实现格式化时间转换为时间戳
- ExtJs-05-FormPanel