链接: https://leetcode-cn.com/problems/linked-list-random-node/description/
题面
给定一个单向链表,要求设计一个算法,可以随机取得其中的一个数字
解法
这里要用到一个水库采样算法
水库算法:遍历这个链表,在遍历到第$i$个节点时,有 $1 / i$的概率选择这个节点覆盖掉之前的节点选择。
代码
1 | class Solution { |
但问耕耘,莫问收获
链接: https://leetcode-cn.com/problems/linked-list-random-node/description/
给定一个单向链表,要求设计一个算法,可以随机取得其中的一个数字
这里要用到一个水库采样算法
水库算法:遍历这个链表,在遍历到第$i$个节点时,有 $1 / i$的概率选择这个节点覆盖掉之前的节点选择。
1 | class Solution { |