Here, We see Permutations problem Solution. This Leetcode problem is done in many programming languages like C++, Java, JavaScript, Python, etc., with different approaches.

Permutations LeetCode Solution
Problem Statement ->
Given an array nums of distinct integers, return all the possible permutations. You can return the answer in any order.
Example 1: Input: nums = [1,2,3] Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] Example 2: Input: nums = [0,1] Output: [[0,1],[1,0]]
Example 3: Input: nums = [1] Output: [[1]]
Permutations Leetcode Solution C++ ->
class Solution {
public:
vector<vector<int>> permute(vector<int>& nums) {
vector<vector<int>> results;
generatePermutations(0, &nums, &results);
return results;
}
private:
void generatePermutations(int i, vector<int>* nums_ptr, vector<vector<int>>* results) {
auto& nums = *nums_ptr;
if (i == nums.size() - 1) {
results->emplace_back(nums);
return;
}
for (int j = i; j < nums.size(); ++j) {
std::swap(nums[i], nums[j]);
generatePermutations(i + 1, nums_ptr, results);
std::swap(nums[i], nums[j]);
}
}
};
Code language: C++ (cpp)
Permutations Leetcode Solution Java ->
class Solution {
public List<List<Integer>> permute(int[] nums) {
List<List<Integer>> permutations = new ArrayList<>();
if (nums.length == 0) {
return permutations;
}
collectPermutations(nums, 0, new ArrayList<>(), permutations);
return permutations;
}
private void collectPermutations(int[] nums, int start, List<Integer> permutation,
List<List<Integer>> permutations) {
if (permutation.size() == nums.length) {
permutations.add(permutation);
return;
}
for (int i = 0; i <= permutation.size(); i++) {
List<Integer> newPermutation = new ArrayList<>(permutation);
newPermutation.add(i, nums[start]);
collectPermutations(nums, start + 1, newPermutation, permutations);
}
}
}
Code language: Java (java)
Permutations Leetcode Solution JavaScript ->
var permute = function(nums) {
let results = [];
let permutations = (current, remaining) => {
if(remaining.length <= 0) results.push(current.slice());
else {
for(let i = 0; i < remaining.length; i++) { // Loop through remaining elements
current.push(remaining[i]); // Insert the iTH element onto the end of current
permutations(current.slice(), remaining.slice(0, i).concat(remaining.slice(i+1))); // Recurse with inserted element removed
current.pop(); // Remove last inserted element for next iteration
}
}
};
permutations([], nums);
return results;
};
Code language: JavaScript (javascript)
Permutations Leetcode Solution Python ->
class Solution(object):
def permute(self, nums):
res = []
self.dfs(nums, [], res)
return res
def dfs(self, nums, path, res):
if not nums:
res.append(path)
for i in xrange(len(nums)):
self.dfs(nums[:i]+nums[i+1:], path+[nums[i]], res)
Code language: Python (python)