1. 题目

2. 思路
(1) 洗牌算法
- 遍历数组,每次从后面的元素中随机取一个元素与当前元素交换。
3. 代码
import java.util.*;
public class Test {
public static void main(String[] args) {
}
}
class Solution {
private int[] arr;
private int[] cur;
private Random random = new Random();
public Solution(int[] nums) {
arr = nums;
cur = arr.clone();
}
public int[] reset() {
cur = arr.clone();
return cur;
}
public int[] shuffle() {
for (int i = 0; i < cur.length; i++) {
int swap = random.nextInt(cur.length - i) + i;
int temp = cur[i];
cur[i] = cur[swap];
cur[swap] = temp;
}
return cur;
}
}