Skip to main content
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

Tags

Last modified on September 7, 2026