DEV Community

loading...

LeetCode 46. Permutations (javascript solution)

codingpineapple
・1 min read

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

Discussion (0)

Forem Open with the Forem app