Shuffle a set of numbers without duplicates.
将每个数与其之后的随机一个数互换。
注意reset的时候要使用clone。
public class Solution { private int[] originals; private int[] current; public Solution(int[] nums) { this.originals = nums.clone(); this.current = nums; } /** Resets the array to its original configuration and return it. */ public int[] reset() { current = originals.clone(); return current; } /** Returns a random shuffling of the array. */ public int[] shuffle() { Random random = new Random(); for (int i = 0; i < current.length; i++) { int a = current[i]; int nextIndex = i + random.nextInt(current.length-i); current[i] = current[nextIndex]; current[nextIndex] = a; } return current; } }