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> > permute(vector<int> &num) {
int size = num.size();
vector<vector<int>> result;
if(size == 0)
return result;
if(size == 1) {
result.push_back(num);
return result;
}
vector<vector<int>> others;
vector<int> current;
vector<int> temp;
for(int ii = 0; ii < size; ii ++)
{
current = num;
current.erase(current.begin() + ii);
others = permute(current);
for(int jj = 0; jj < others.size(); jj ++) {
temp = others[jj];
temp.insert(temp.begin(), num[ii]);
result.push_back(temp);
}
}
return result;
}
};