
数据结构
数据结构算法思想总结,Python实现
一只干巴巴的海绵
这个作者很懒,什么都没留下…
展开
-
链表
- 带环链表:链表是否有环,环的长度,环的入口点,链表的长度- 反转链表- 链表中倒数第k个结点- 合并有序链表- 两个链表的第一个公共结点原创 2020-10-23 19:59:24 · 365 阅读 · 1 评论 -
LeetCode数学问题(Python)
- 公倍数与公因数- 质数- 数字处理:Boyer-Moore 投票算法- 随机与取样:Fisher-Yates 洗牌算法,蓄水池抽样算法,用一个随机数生成器生成另一个随机数生成器- 浮点数在计算机中的存储,Python精度控制原创 2020-10-08 21:56:53 · 2937 阅读 · 0 评论 -
贪心算法
- 钞票支付问题- 分发饼干- 摆动序列- 移除k个数字- 跳跃游戏- 用最小数量的箭引爆气球- 最低加油次数原创 2020-10-02 16:29:59 · 467 阅读 · 0 评论 -
搜索:BFS、DFS
包括以下几个类型的题目:- 连通分量的个数- 连通分量的大小- 无权图最短路径长度- 路径序列原创 2020-09-29 21:10:07 · 360 阅读 · 0 评论 -
回溯、深度优先搜索、递归、栈
- 深度优先搜索、递归、栈三者之间的关系。- 回溯与深搜,回溯模板,使用Python编程回溯的注意事项。- 回溯经典LeetCode题目。原创 2020-09-21 22:12:05 · 987 阅读 · 0 评论 -
单调栈与单调队列算法详解及LeetCode经典题目(Python)
- 单调栈:求出某个数的左边或右边第一个比它大或小的元素。- 单调队列:区间最大值最小值问题。原创 2020-09-10 16:54:53 · 2605 阅读 · 3 评论 -
查找:查找表、对撞指针、滑动数组、二分查找
- 查找表、对撞指针、滑动数组、二分查找- LeetCode题目原创 2020-09-03 14:08:16 · 359 阅读 · 0 评论 -
分治算法:LeetCode经典题目,使用Python
- 分治算法思想、步骤- 分治算法题目原创 2020-08-29 14:21:56 · 1688 阅读 · 0 评论 -
动态规划系列:LeetCode经典题目,使用Python
- 动态规划思想- 子序列与子数组- 字符串- 若干不相邻的数和最大- 零钱兑换- 股票买卖最佳时机- 等差数列- 图dp原创 2020-08-27 12:15:00 · 1375 阅读 · 0 评论 -
字符串匹配:KMP算法
- KMP是一种字符串匹配算法。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。- Python实现KMP算法。原创 2020-08-24 22:19:55 · 288 阅读 · 0 评论 -
动态规划系列:背包九讲,使用Python
-01背包- 完全背包- 多重背包:二进制优化、单调栈优化- 混合背包- 二维费用的背包问题- 分组背包- 有依赖的背包问题- 背包问题的方案数- 求背包问题的具体方案原创 2020-08-24 00:22:44 · 780 阅读 · 0 评论 -
整除分块
整除时会有很多数的商相同,整除分块就是根据不同的数值划分出不同的块。原创 2020-07-30 08:25:37 · 206 阅读 · 0 评论 -
Python实现并查集
并查集是一种树型的数据结构,用于处理一些不交集的合并及查询问题。并查集用集合中的某个元素来代表一个集合,该元素称为集合的代表元;一个集合内的所有元素组织成以代表元为根的树形结构。原创 2020-07-09 23:55:53 · 2870 阅读 · 2 评论 -
Python实现:图的遍历(BFS、DFS)、最小生成树(Kruskal、Prim)、最短路径(Dijkstra)
图的遍历:广度优先搜索(队列),深度优先搜索(栈);最小生成树(Kruskal、Prim),单源最短路径(Dijkstra)原创 2020-06-28 17:52:26 · 2053 阅读 · 1 评论 -
二分查找时间复杂度及其Python实现
二分查找假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。优点:比较次数少,查找速度快,平均性能好;缺点:要求待查表为有序顺序表,且插入删除困难。二分查找方法适用于不经常变动而查找频繁的有序列表。二分查找最优时间复杂度是O(1)O(1)原创 2020-05-21 15:41:54 · 2321 阅读 · 0 评论 -
Python实现二叉树的遍历:递归与非递归方式、前序中序后序与层次遍历
1. Python实现树的遍历:递归与非递归方式、前序中序后序与层次遍历2. 二叉树的深度原创 2020-04-11 12:12:56 · 502 阅读 · 0 评论 -
Python实现排序:插入排序、希尔排序、选择排序、快速排序、交换排序、堆排序、归并排序
0. 排序算法特点1. Python实现排序算法2. 排序算法复杂度与稳定性3. heapq库原创 2020-04-11 00:10:25 · 668 阅读 · 0 评论