leetcode:Linked List Random Node…
来源:互联网 发布:睡了兄弟的女朋友知乎 编辑:程序博客网 时间:2024/05/16 12:04
Linked List Random Node:
给定一个链表数组,随机返回其中一个元素,要求返回所有元素的可能性一致。
满足这个要求很简单,求出链表的长度,然后根据长度设置随机值,再返回对应位置的元素即可。
然后就是进阶要求:无法得到链表的长度,依然要求等概率随机返回。
这个就涉及一个经典的算法,水塘抽样,步骤如下:
1、把第一个样本放入ans
2、对于接下来每个样本a[j],从1-j随机抽一个数a,如果a==1那么就把a[j]替换到ans
这是因为对于元素a[j],它被返回的概率是:抽中aj的概率*a[j]之后的元素都没被抽中的概率。
即
每个数被抽中的概率均是1/n。同理可以推广到,随机取k个数的情况(随机数a
Top K Frequent Elements:
求数组中出现次数最多的前K个元素,思路还是挺简单,不过我用的是vector+sort,居然忘记还有priority_queue这种优先队列型的容器。
Count Numbers with Unique Digits:
找出所有不含重复字符的数。我的思路是先找出含重复字母的,一直卡住,后来看解析才知道,换个角度想,直接找不重复字符的数要更直接,因为可以逐位考虑。
阅读全文
0 0
- leetcode:Linked List Random Node…
- 【Leetcode】Linked List Random Node
- LeetCode - Linked List Random Node
- [leetcode]-Linked List Random Node
- Check a loop in a list with line…
- Data Struct \ list - insert - re…
- ibatis iterator list 参数 …
- Can not cast from List…
- leetcode:Remove Element + Imple…
- leetcode:Divide Two Integers + …
- leetcode:Shuffle an Array + Miss…
- leetcode:Integer to Roman + Fin…
- List ArrayList LinkedList
- [leetcode] 382. Linked List Random Node
- LeetCode:382 Linked List Random Node
- <LeetCode OJ> 382. Linked List Random Node
- LeetCode—382. Linked List Random Node
- leetcode之Linked List Random Node
- leetcode:Next Permutation + Lon…
- C#枚举所有串口COM
- 数据库的锁表和解锁操作
- leetcode:Fraction to Recurring …
- leetcode:Single Number123 …
- leetcode:Linked List Random Node…
- leetcode:Shuffle an Array + Miss…
- leetcode:Integer to Roman + Fin…
- finetune入门,如何用已有的caffem…
- 009-logback中configuration的logger和root子节点
- 如何同时使用相同项目的两个分支
- 在Ubuntu上安装opencv
- leetcode:Bulb Switcher + K…
- leetcode:Reconstruct Original D…