Back to all solutions
#384 - Shuffle an Array
Problem Description
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.
Solution
/**
* @param {number[]} nums
*/
var Solution = function(nums) {
this.original = [...nums];
this.result = [...nums];
};
/**
* @return {number[]}
*/
Solution.prototype.reset = function() {
this.result = [...this.original];
return this.result;
};
/**
* @return {number[]}
*/
Solution.prototype.shuffle = function() {
for (let i = this.result.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[this.result[i], this.result[j]] = [this.result[j], this.result[i]];
}
return this.result;
};