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 */