Problem Statement could be found @https://leetcode.com/problems/permutations/
class Solution {
vector<vector<int>> retvec;
public:
void swap(vector<int> &nums, int i, int j){
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
void helper(vector<int> &nums, int index){
if (index == nums.size()){
retvec.push_back(nums);
return ;
}
for (int i=index; i< nums.size();i++){
swap(nums, i, index);
helper(nums, index+1);
swap(nums, i, index);
}
}
vector<vector<int>> permute(vector<int>& nums) {
helper(nums,0);
return retvec;
}
};
class Solution {
vector<vector<int>> retvec;
public:
void swap(vector<int> &nums, int i, int j){
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
void helper(vector<int> &nums, int index){
if (index == nums.size()){
retvec.push_back(nums);
return ;
}
for (int i=index; i< nums.size();i++){
swap(nums, i, index);
helper(nums, index+1);
swap(nums, i, index);
}
}
vector<vector<int>> permute(vector<int>& nums) {
helper(nums,0);
return retvec;
}
};