数据结构与算法
NLP_wendi
这个作者很懒,什么都没留下…
展开
-
带权重的并查集算法应用
关于并查集算法的应用。原创 2024-01-29 13:51:38 · 132 阅读 · 0 评论 -
双向BFS及其应用
【代码】双向BFS及其应用。原创 2024-01-27 23:41:41 · 193 阅读 · 0 评论 -
Brian Kernighan 算法应用
Brian Kernighan算法,也被称为布莱恩·柯林汉算法,是一种用于统计二进制中位数为1的个数的高效算法。该算法通过不断清除二进制数中最右侧的1来计算1的个数,直到二进制数变为0为止。原创 2024-01-24 10:20:52 · 429 阅读 · 0 评论 -
149. 直线上最多的点数
【代码】149. 直线上最多的点数。原创 2024-01-24 10:06:14 · 344 阅读 · 0 评论 -
腐烂的橘子 -- DFS、BFS
【代码】腐烂的橘子 -- DFS、BFS。原创 2024-01-14 10:19:20 · 464 阅读 · 0 评论 -
杨辉三角 -- 迭代和递归分别实现
【代码】杨辉三角 -- 迭代和递归分别实现。原创 2024-01-10 10:27:32 · 302 阅读 · 0 评论 -
二叉树路径总和 -- dfs+前缀和
【代码】二叉树路径总和 -- dfs+前缀和。原创 2024-01-09 17:56:53 · 367 阅读 · 0 评论 -
链表排序 -- 插入和归并
本文介绍两种链表排序的方法,归并排序和插入排序,时间复杂度和空间复杂度等价于数组排序,原创 2024-01-09 09:56:42 · 363 阅读 · 0 评论 -
84. 柱状图中最大的矩形 -- 单调栈
【代码】84. 柱状图中最大的矩形 -- 单调栈。原创 2024-01-06 17:42:51 · 366 阅读 · 0 评论 -
两种经典方法解决随机数生成问题--利用rand5得到rand7
利用rand5得到rand7原创 2023-12-20 11:48:51 · 441 阅读 · 0 评论 -
数位DP相关题目及通用模版
【代码】数位DP相关题目及通用模版。原创 2023-12-17 11:40:37 · 44 阅读 · 0 评论 -
一台单机上的一个大文件存了100亿个关键词,统计出现频率最高的top10,如何做?
怎么统计出现频率最高的top10?原创 2023-12-11 11:32:06 · 127 阅读 · 0 评论 -
旅行商问题(状压DP)
【代码】旅行商问题。动态规划+状态压缩原创 2023-12-07 15:55:11 · 83 阅读 · 0 评论 -
41. 缺失的第一个正数
【代码】41. 缺失的第一个正数。原创 2023-12-01 09:51:40 · 50 阅读 · 0 评论 -
Rabin Karp 字符匹配算法
【代码】Rabin Karp 字符匹配算法。原创 2023-11-14 20:59:56 · 94 阅读 · 0 评论 -
几道单调队列相关的题目
【代码】几道单调队列相关的题目。原创 2023-11-09 18:01:51 · 150 阅读 · 0 评论 -
单调栈的相关应用
【代码】单调栈的相关应用。原创 2023-11-07 17:56:22 · 72 阅读 · 0 评论 -
游戏中的随机抽样算法
【代码】游戏中的随机抽样算法。原创 2023-11-05 08:57:42 · 257 阅读 · 0 评论 -
134. 加油站 -- 贪心算法
【代码】134. 加油站 -- 贪心算法。原创 2023-11-02 21:17:47 · 94 阅读 · 0 评论 -
1834. 单线程 CPU
【代码】1834. 单线程 CPU。原创 2023-11-01 16:37:22 · 94 阅读 · 0 评论 -
岛屿的周长
【代码】岛屿的周长。原创 2023-10-23 16:06:11 · 131 阅读 · 0 评论 -
并查集算法应用
【代码】等式方程的可满足性 -- 并查集算法应用。原创 2023-09-04 21:38:06 · 83 阅读 · 0 评论 -
被围绕的区域 -- 并查集
这道题主要考察并查集的用法, 虚拟出一个超级父节点(dummy),想办法让元素分门别类,建立好动态连通关系,最后根据连通性处理元素,其中用到二维数组的一维化表示技巧。原创 2023-09-04 20:33:00 · 201 阅读 · 0 评论 -
课程表系列
【代码】课程表系列。原创 2023-10-15 17:01:44 · 374 阅读 · 0 评论 -
1373. 二叉搜索子树的最大键值和
【代码】1373. 二叉搜索子树的最大键值和。原创 2023-10-15 09:56:20 · 143 阅读 · 0 评论 -
501. 二叉搜索树中的众数
【代码】501. 二叉搜索树中的众数。原创 2023-10-14 21:33:39 · 138 阅读 · 0 评论 -
验证二叉搜索树的后序遍历序列
【代码】验证二叉搜索树的后序遍历序列。原创 2023-10-13 22:32:44 · 296 阅读 · 0 评论 -
1740. 找到⼆叉树中的距离
【代码】1740. 找到⼆叉树中的距离。原创 2023-10-13 22:12:31 · 171 阅读 · 0 评论 -
366. 寻找⼆叉树的叶⼦节点
这道题混用二叉树递归 「原创 2023-10-12 18:14:36 · 108 阅读 · 0 评论 -
重建二叉树 -- 结合前中后序列
结合二叉树前中后序列重建二叉树原创 2023-10-10 16:33:43 · 53 阅读 · 0 评论 -
865. 具有所有最深节点的最小子树
【代码】865. 具有所有最深节点的最小子树。原创 2023-10-10 12:34:03 · 91 阅读 · 0 评论 -
一文搞懂二叉树后序遍历的三种方法
总体上分为两种框架,递归框架和非递归框架,递归框架又分为两种思路:分解思路和遍历思路。下面代码对三种方法逐一实现。原创 2023-10-09 17:48:19 · 213 阅读 · 0 评论 -
一文搞懂二叉树中序遍历的三种方法
总体上分为两种框架,递归框架和非递归框架,递归框架又分为两种思路:分解思路和遍历思路。下面代码对三种方法逐一实现。原创 2023-10-09 16:01:19 · 240 阅读 · 0 评论 -
一文搞懂二叉树先序遍历的三种方法
总体上分为两种框架,递归框架和非递归框架,递归框架又分为两种思路:分解思路和遍历思路。下面代码对三种方法逐一实现。原创 2023-10-09 15:38:49 · 133 阅读 · 0 评论 -
LFU 缓存 -- LinkedHashSet
【代码】LFU 缓存 -- LinkedHashSet。原创 2023-10-07 15:12:31 · 770 阅读 · 0 评论 -
快速排序及其拓展应用
快速排序是二叉树的前序遍历,归并排序是二叉树的后序遍历。快速排序的过程其实就是一颗二叉搜索树构造的过程。先将一个元素排好序,然后再将剩下的元素排好序。原创 2023-10-06 10:44:35 · 80 阅读 · 0 评论 -
LRU 缓存 -- 哈希链表
哈希表查找快,但是数据⽆固定顺序;链表有顺序之分,插⼊删除快,但是查找慢,所以结合⼆者的⻓处,可以形成⼀种新的数据结构:哈希链表 LinkedHashMap。3、每次访问 cache 中的某个 key,需要将这个元素变为最近使⽤的,也就是说 cache 要⽀持在任意位置快速插⼊和删除元素。1、显然 cache 中的元素必须有时序,以区分最近使⽤的和久未使⽤的数据,当容量满了之后要删除最久未使⽤的那个元素腾位置。本文最后还提供了一种 结合双向链表和哈希表的 从零开始的实现,供参考。原创 2023-10-05 22:20:07 · 814 阅读 · 0 评论 -
队列和栈相互实现
弹出元素时,将对首的元素出列加到队尾,直到只剩下初始队列时队尾一个元素为止,然后弹出这个元素,即可实现LIFO。:用两个栈实现队列的功能,出栈时,将栈1的元素全部弹出压到栈2中,然后弹出栈2栈顶的元素,即可实现FIFO。原创 2023-10-04 22:19:02 · 210 阅读 · 0 评论 -
有效括号相关
【代码】有效括号相关。原创 2023-10-03 23:11:32 · 82 阅读 · 0 评论 -
差分数组的应用技巧
针对的算法场景是不需要对原始数组进行修改的情况下,频繁查询某个区间的累加和。主要适用场景是频繁对原始数组的某个区间的元素进行增减。原创 2023-10-03 17:01:53 · 274 阅读 · 0 评论