leetcode46
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]
.
class Solution { public: vector<vector<int> > func(int n, vector<vector<int> > p) { if (p.size() == 0) { vector<int> temp; temp.push_back(n); p.push_back(temp); return p; } vector<vector<int> > pt; for (vector<vector<int> >::iterator it = p.begin(); it != p.end(); ++it) { for (int i = 0; i < (*it).size(); ++i) { vector<int> temp = *it; temp.insert(temp.begin() + i, n); pt.push_back(temp); } vector<int> temp = *it; temp.insert(temp.end(), n); pt.push_back(temp); } return pt; } vector<vector<int>> permute(vector<int>& nums) { vector<vector<int> > p; for (vector<int>::iterator it = nums.begin(); it != nums.end(); ++it) { p = func(*it, p); } return p; } };