DEV Community

codingpineapple
codingpineapple

Posted on

LeetCode 46. Permutations (javascript solution)

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
};
Enter fullscreen mode Exit fullscreen mode

Top comments (1)

Collapse
 
qurashieman profile image
Tuba Inam

I found that solution is very popular and helpful: youtu.be/UvSPsz0jTQ4