permutations
来源:互联网 发布:mysql数据库5.5.20安装 编辑:程序博客网 时间:2024/05/22 01:27
/*暴力枚举permutations 排列[1,2,3]permutations:[1,2,3] [1,3,2][2,1,3] [2,3,1][3,1,2] [3,2,1]分析:使用深度搜索:从左到右遍历,变量i看是否在已选路径中如果在,push_back(),继续若果不再,返回上一层*/#include <iostream>#include<vector>#include<algorithm>using namespace std;class Solution{public:vector<vector<int>>permulation(vector<int>&S){vector<vector<int>>result;vector<int>path;DFS(S, path, result);return result;}private:void DFS(vector<int>&s, vector<int>&path, vector<vector<int>>&result){if (path.size() == s.size())//终止条件{result.push_back(path);return;}for (auto i : s){auto position = find(path.begin(), path.end(), i);//寻找i是否在pathif (position == path.end())//i不在path中{path.push_back(i);DFS(s, path, result);path.pop_back();//返回上一层}}}};int main(){Solution s1;int n;vector<vector<int>>result;vector<int>vec;cout << "请输入n:";cin >> n;for (int i = 0; i < n; i++)vec.push_back(i + 1);cout << "permutations are:" << endl;result = s1.permulation(vec);for (int i = 0; i < result.size(); i++){for (int j = 0; j < result[i].size(); j++){cout << result[i][j] << ",";}cout << endl;}system("pause");return 0;}
0 0
- Permutations
- Permutations
- Permutations
- Permutations
- Permutations
- Permutations
- Permutations
- Permutations
- Permutations
- Permutations
- Permutations
- Permutations
- Permutations
- Permutations
- Permutations
- Permutations
- Permutations
- Permutations
- Epoll模型讲解
- laravel的吐槽
- pmpi简单实例
- laravel眼瞎么?
- caffe中如何可视化cnn各层的输出
- permutations
- subsets
- [译]时间自动机:语义,算法和工具 UPPAAL
- [Exploratory Data Analysis] Week 1
- [Exploratory Data Analysis] Project 1
- 表单中邮箱自动完成的实现
- 读MBA经历回顾(下)做法决定结果——北漂18年(49)
- CSP考试 2013年12月第1题 出现次数最多的数 C语言实现
- asp网页跳转