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();
Random random = new Random();
random.nextInt(int i);
1 public class Solution { 2 int[] arr; 3 Random random; 4 5 6 public Solution(int[] nums) { 7 arr = nums; 8 random = new Random(); 9 }10 11 /** Resets the array to its original configuration and return it. */12 public int[] reset() {13 return arr;14 }15 16 /** Returns a random shuffling of the array. */17 public int[] shuffle() {18 int[] copy = arr.clone();19 20 for (int i=arr.length-1; i>=0; i--) {21 int index = random.nextInt(i+1);22 int temp = copy[index];23 copy[index] = copy[i];24 copy[i] = temp;25 }26 return copy;27 }28 }29 30 /**31 * Your Solution object will be instantiated and called as such:32 * Solution obj = new Solution(nums);33 * int[] param_1 = obj.reset();34 * int[] param_2 = obj.shuffle();35 */