全排列算法c++实现
来源:互联网 发布:linux查看hba卡信息 编辑:程序博客网 时间:2024/05/16 08:30
问题:
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;}
- C语言实现全排列算法
- C语言实现的全排列算法
- C语言全排列算法实现
- C语言实现的全排列算法
- 全排列算法实现
- 全排列算法(c语言实现)acm练习
- 全排列算法(Java实现)
- 全排列算法及实现
- 递归算法实现全排列
- 全排列算法【java实现】
- 全排列算法递归实现
- 全排列算法及实现
- 【算法】递归实现全排列
- 全排列算法及实现
- 全排列算法c++实现
- 全排列算法c++实现
- 全排列算法的实现
- 全排列算法的实现
- js设置cookie
- FMResult 中管理数据库值得学习的代码
- Verilog HDL in one day Part-III
- Robberies
- 看懂信息检索和网络数据挖掘领域论文的必备知识总结
- 全排列算法c++实现
- 记录几个常用的批处理文件
- 备份与还原
- VMWare虚拟机设置固定ip上网方法
- 第三章 面向对象编程基础知识
- 数据库知识梳理
- ACM题 蛇形矩阵
- SimpleHTTPServerWithUpload.py
- 天易21----jquery实现简单的表单验证