蓄水池采样算法 算法 假设数据序列的规模为 n,需要采样的数量的为 k。 首先构建一个可容纳 k 个元素的数组,将序列的前 k 个元素放入数组中。 然后从第 k+1 个元素开始,以 k/n 的概率来决定该元素是否被替换到数组中(数组中的元素被替换的概率是相同的)。 当遍历完所有元素之后,数组中剩下的元素即为所需采取的样本。 题目 从一个字符流中进行采样,最后保留 10 个字符,而并不知道这个流什么时候结束,且须保证每个字符被采样到的几率相同。 力扣398 力扣497