LeetCode 384, Medium. Topics: Array, Math, Design, Randomized. View on LeetCode.
Generate this problem as a practice environment: tested reference solution, 16 parametrized pytest cases, and a playground notebook:
Problem
Given an integer array nums, design an algorithm to randomly shuffle the array. All permutations of the array should be equally likely as a result of the shuffling.
Implement the Solution class:
Solution(int[] nums) Initializes the object with the integer array nums.
int[] reset() Resets the array to its original configuration and returns it.
int[] shuffle() Returns a random shuffling of the array.
Examples
Constraints
1 <= nums.length <= 50
-10^6 <= nums[i] <= 10^6
- All the elements of
nums are unique.
- At most
10^4 calls in total will be made to reset and shuffle.
Solution
Reference implementation from solution.py on GitHub, full suite in test_solution.py:
Complexity
Last modified on September 7, 2026