2026-09-24 14:36:19 -04:00
|
|
|
---
|
|
|
|
|
title: '46. Permutations'
|
|
|
|
|
description: Given an array nums of distinct integers, return all the possible permutations. You can return the answer in any order
|
2026-09-25 13:17:35 -04:00
|
|
|
icon: dot
|
2026-09-24 14:36:19 -04:00
|
|
|
sidebar:
|
|
|
|
|
label: 'Permutations'
|
|
|
|
|
badge: 'Medium'
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
<Badge variant="accent">Array</Badge>
|
|
|
|
|
|
|
|
|
|
### 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.
|
|
|
|
|
|
|
|
|
|
## Solution
|
|
|
|
|
|
|
|
|
|
```py
|
|
|
|
|
class Solution:
|
|
|
|
|
def permute(self, nums: list[int]) -> list[list[int]]:
|
|
|
|
|
result, path = [], []
|
|
|
|
|
used = [False] * len(nums)
|
|
|
|
|
|
|
|
|
|
def backtrack():
|
|
|
|
|
if len(path) == len(nums):
|
|
|
|
|
result.append(path[:])
|
|
|
|
|
return
|
|
|
|
|
for i in range(len(nums)):
|
|
|
|
|
if used[i]:
|
|
|
|
|
continue
|
|
|
|
|
used[i] = True
|
|
|
|
|
path.append(nums[i])
|
|
|
|
|
backtrack()
|
|
|
|
|
path.pop()
|
|
|
|
|
used[i] = False
|
|
|
|
|
|
|
|
|
|
backtrack()
|
|
|
|
|
return result
|
|
|
|
|
```
|