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]]
Explanation: Three distinct numbers can be ordered in 3! = 6 ways, and all of them are listed.
Example 2
Input: nums = [0,1]
Output: [[0,1],[1,0]]
Explanation: Two numbers can be ordered in 2 ways: [0,1] and [1,0].
Example 3
Input: nums = [1]
Output: [[1]]
Explanation: A single number has only one ordering.
Build a permutation one element at a time. At each step choose any of the not-yet-used numbers, recurse, then undo the choice so the next branch can try a different number. When the path uses all numbers, it's a complete permutation.
Run checks all cases above. Submit evaluates all test cases.