173:打乱数组

LeetCode 384 https://leetcode.cn/problems/shuffle-an-array/description/ 难度:中等 高频面试题汇总:https://www.yuweihung.com/posts/2025/lc-hot/ Knuth 洗牌算法,i 从 n - 1 遍历到 0,j 为 [0, i] 中的随机数,交换 i,j。 取随机数的方法为 rand() % (i + 1)。rand() 函数定义在 cstdlib 头文件中。 时间复杂度: 初始化:O(n),其中 n 为数组中的元素数量。我们需要 O(n) 来初始化 original。 reset:O(n)。我们需要 O(n) 将 original 复制到 nums。 shuffle:O(n)。我们只需要遍历 n 个元素即可打乱数组。 空间复杂度:O(n)。记录初始状态需要存储 n 个元素。 ...

七月 15, 2025 · Cassius