459 字
1 分钟
算法学习
学习路线
这里记录跟学 algorithm-journey 时整理出来的专题笔记。
当前进度
| 分类 | 已整理 | 说明 |
|---|---|---|
| 二分搜索 | 1 | 寻找任意峰值 |
| 链表 | 3 | 合并链表、两数相加、链表分区 |
| 数据结构 | 3 | 队列、栈、循环队列;栈和队列互相转化;最小栈 |
专题索引
| # | 分类 | 专题 | 目录 | 对应课程 |
|---|---|---|---|---|
| 01 | 二分搜索 | 二分搜索:寻找峰值 | 01-findpeakelement | class006 |
| 02 | 链表 | 链表:合并两个有序链表 | 02-MergeTwoLists | class010 |
| 03 | 链表 | 链表:两数相加 | 03-addTwoNumbers | class011 |
| 04 | 链表 | 链表:分隔链表 | 04-PartitionList | class012 |
| 05 | 数据结构 | 数据结构:队列、栈和循环队列 | 05-QueueStackAndCircularQueue | class013 |
| 06 | 数据结构 | 数据结构:栈和队列的互相转化 | 06-ConvertQueueAndStack | class014 |
| 07 | 数据结构 | 数据结构:最小栈 | 07-MinStack | class015 |
分类索引
二分搜索
- 二分搜索:寻找峰值:根据上升、下降趋势判断哪一侧一定存在峰值。
链表
- 链表:合并两个有序链表:用双指针比较两个有序链表当前节点,并把较小节点接到结果链表后面。
- 链表:两数相加:按链表逆序存储的数字做逐位加法,并维护进位。
- 链表:分隔链表:用两条链表分别收集
< x和>= x的节点,最后稳定拼接。
数据结构
- 数据结构:队列、栈和循环队列:用数组实现队列和栈,并用
l、r、size维护循环队列。 - 数据结构:栈和队列的互相转化:双栈实现队列(懒倒数据)、单队列实现栈(入队时旋转)。
- 数据结构:最小栈:用辅助栈同步保存每一层的最小值快照,让
getMin()保持O(1)。
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时
相关文章 智能推荐
1
贪心算法:哈夫曼编码
Algorithm 用贪心思想构造哈夫曼树:每次合并频率最小的两个节点,得到平均码长最短的前缀码,实现数据压缩。
2
最大流问题与 Edmonds-Karp 算法
Algorithm 从贪心找路失败出发,引出反向边的纠错机制,形式化残量网络与增广路,用 BFS 实现标号法并反复推流,直到残量网络中源汇不再连通。
3
数值随机化算法:随机采样计算定积分
Algorithm 通过随机投点法和平均值法两个例子,理解数值随机化算法如何利用随机采样思想近似求解定积分。
4
蒙特卡罗算法:用随机撒点估算圆周率
Algorithm 通过估算圆周率 π 的经典例子,理解蒙特卡罗算法的随机采样思想,以及它和拉斯维加斯算法的区别。
5
最短等待时间(加工顺序问题)
Algorithm 用贪心思想解决加工顺序问题:让耗时短的任务先执行,从而最小化所有任务的总等待时间。


















