384. Shuffle an Array

384. Shuffle an Arrayarrow-up-right

Shuffle a set of numbers without duplicates.

Example:

// Init an array with set 1, 2, and 3.
int[] nums = {1,2,3};
Solution solution = new Solution(nums);

// Shuffle the array [1,2,3] and return its result. Any permutation of [1,2,3] must equally likely to be returned.
solution.shuffle();

// Resets the array back to its original configuration [1,2,3].
solution.reset();

// Returns the random shuffling of array [1,2,3].
solution.shuffle();

My Solutions:

Have an int[] arr to record the original array;

for shuffle(), swap the index i and index j, where j = random.nextInt(len - i) + i (j是i之后的任意index)

(Resorvior sampling: the probability to choose an element out of n elements is 1/n)

Last updated