46. Permutations
Given a collection of distinct 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], [3,2,1] ]
class Solution {
public:
vector<vector<int>> vv;
vector<int> v;
vector<vector<int>> permute(vector<int>& nums) {
int num1=nums.size();
fun2(nums,0);
return vv;
}
void fun2(vector<int>& nums,int j) {
int num2=nums.size();
if(j>num2-1) {
vv.push_back(nums);
}
else {
for(int i=j;i<num2;i++) {
v.push_back(nums[i]);
swap(nums[i],nums[j]);
fun2(nums,j+1);
swap(nums[i],nums[j]);
v.pop_back();
}
}
}
};
public:
vector<vector<int>> vv;
vector<int> v;
vector<vector<int>> permute(vector<int>& nums) {
int num1=nums.size();
fun2(nums,0);
return vv;
}
void fun2(vector<int>& nums,int j) {
int num2=nums.size();
if(j>num2-1) {
vv.push_back(nums);
}
else {
for(int i=j;i<num2;i++) {
v.push_back(nums[i]);
swap(nums[i],nums[j]);
fun2(nums,j+1);
swap(nums[i],nums[j]);
v.pop_back();
}
}
}
};