Skip to content
On this page

46. Permutations

https://leetcode.com/problems/permutations/

js
/**
 * @param {number[]} nums
 * @return {number[][]}
 */
var permute = function(nums) {
  if (nums.length === 1) {
    return [nums]
  }

  var result = []
  for (let i = 0; i < nums.length; i++) {
    var copy = nums.slice()
    var n = copy.splice(i, 1)[0]
    permute(copy).forEach(arr => {
      arr.unshift(n)
      result.push(arr)
    })
  }

  return result
}
py
class Solution(object):

    def permute(self, nums):
        """
        :type nums: List[int]
        :rtype: List[List[int]]
        """
        if len(nums) == 1:
            return [nums]
        result = []
        for i in range(len(nums)):
            for j in self.permute(nums[:i] + nums[i + 1:]):
                result.append([nums[i]] + j)
        return result