N

(LeetCode JS)Permutation 본문

Leet Code 알고리즘

(LeetCode JS)Permutation

naeunchan 2021. 9. 20. 10:35
728x90
반응형

46. Permutations

 

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]]

 

Constraints:

  • 1 <= nums.length <= 6
  • -10 <= nums[i] <= 10
  • All the integers of nums are unique.

 

/**
 * @param {number[]} nums
 * @return {number[][]}
 */
const permute = (nums) => {
    const answer = [];
    
    const dfs = (nums, acc) => {
        if(!nums.length){
            answer.push(acc);
            return;
        }
        
        nums.forEach((n, index) => {
            const copy = nums.slice();
            copy.splice(index, 1);
            dfs(copy, acc.concat(n));
        });
    }
    
    dfs(nums, []);
    
    return answer;
};
728x90
반응형