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]
.
void get(vector<int> &num, int index, vector<vector<int>> &solution) { if(index >= num.size()) { solution.push_back(num); return; }else for(int i = index; i < num.size(); i++) { swap(num[index],num[i]); get(num,index+1,solution); swap(num[index],num[i]); } } vector<vector<int>> permute(vector<int> &num) { // Note: The Solution object is instantiated only once. vector<vector<int>> solution; if(num.size()<1)return solution; get(num, 0, solution); return solution; }