解题思路
洗牌算法
思想就是
for(int i=array.length-1;i>=0;i–){
j = 0到i+1的一个随机数
然后置换array[i]和array[j]位置的数
}
代码
class Solution {
int[] array;
int[] arrayClone;
public Solution(int[] nums) {
array = nums;
arrayClone = nums.clone();
}
public int[] reset() {
array = arrayClone.clone();
return array;
}
public int[] shuffle() {
for (int i=array.length-1;i>=0;i--){
Random random = new Random();
int index = random.nextInt(i + 1);
int num = array[index];
array[index] = array[i];
array[i] = num;
}
return array;
}
}
/**
* Your Solution object will be instantiated and called as such:
* Solution obj = new Solution(nums);
* int[] param_1 = obj.reset();
* int[] param_2 = obj.shuffle();
*/