Description:
Given an array nums of distinct integers, return all the possible permutations. You can return the answer in any order.
Solution:
Time Complexity : O(n!)
Space Complexity: O(n)
var permute = function(choices, temp = [], permutations = []) {
// Base case
if(choices.length === 0){
permutations.push([...temp]);
}
for(let i = 0; i < choices.length; i++){
// Create new array without current letter
let newChoices = choices.filter((choice, index) => index !== i)
// Add current to the temp array which is our current permutation
temp.push(choices[i])
permute(newChoices, temp, permutations)
// Once we have explored options remove the current letter from our current permuataion
temp.pop()
}
return permutations
};
Top comments (1)
I found that solution is very popular and helpful: youtu.be/UvSPsz0jTQ4