"title"
Given A collection of numbers, return all possible permutations.
For example,
[1,2,3]The following permutations:
[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2], and[3,2,1].
"Analysis"
No
"Code"
/********************************** Date: 2015-01-16* sjf0115* title: 46.permutations* Website: https://oj.leetcode.com/proble ms/permutations/* Result: ac* Source: leetcode* Blog: **********************************/#include <iostream> #include <a Lgorithm> #include <vector>using namespace Std;class solution {public:vector<vector<int> > Permut E (vector<int> &num) {vector<vector<int> > result; if (Num.empty ()) {return result; }//if Vector<int> visited; Recursive DFS (Num,visited,result); return result; }private:void DFS (vector<int> &num,vector<int> &visited,vector<vector<int> > & Result) {//form a fully arranged if (num.size () = = Visited.size ()) {result.push_back (visited); Return }//if Vector<int>::iterator isvisited; for (int i = 0;i < Num.size (); i++) {//determine num[i] has visited isvisited = Find (Visited.begin (), Visited.end (), num[i]); If you have not accessed the if (isvisited = = Visited.end ()) {Visited.push_back (num[i]); DFS (Num,visited,result); Visited.pop_back (); }//if}//for}};int Main () {solution solution; Vector<int> num; Num.push_back (1); Num.push_back (2); Num.push_back (3); Num.push_back (4); Rearrange vector<vector<int> > permutes = solution.permute (num); Output for (int i = 0;i < Permutes.size (); i++) {cout<< "["; for (int j = 0;j < Permutes[i].size (); j + +) {cout<<permutes[i][j]; }//for cout<< "]" <<endl; } return 0;}
[Leetcode]46.permutations