打乱数组 Posted on 2021-11-22 Edited on 2022-04-14 In LeetCode Views: Waline: Views: Symbols count in article: 354 Reading time ≈ 1 mins. 题解方法 Fisher-Yates 洗牌算法 Fisher-Yates 洗牌算法 对于下标 x 而言,从 [x, n - 1] 中随机出一个位置与 x 进行值交换,当所有位置都进行这样的处理后,便得到一个公平的洗牌方案 核心代码Fisher-Yates 洗牌算法12345678910111213public int[] shuffle() { int[] res = nums.clone(); int n = res.length; for (int i = 0; i < n; i++) { int j = i + random.nextInt(n - i); int tmp = res[i]; res[i] = res[j]; res[j] = tmp; } return res;} 题目来源384. 打乱数组 - 力扣(LeetCode) (leetcode-cn.com)