![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
文章平均质量分 95
数据结构
Yorelee.
这个作者很懒,什么都没留下…
展开
-
力扣hot100:138. 随机链表的复制(技巧,数据结构)
这是一个经典的数据结构题,当做数据结构来学习。原创 2024-06-05 22:38:08 · 1735 阅读 · 0 评论 -
力扣hot100:23. 合并 K 个升序链表
这题非常容易想到归并排序的思路,俩升序序列合并,可以使用归并的方法。不过这里显然是一个多路归并排序;包含多个子数组的归并算法,这可以让我们拓展归并算法的思路。原创 2024-05-29 12:45:00 · 1740 阅读 · 0 评论 -
力扣:654. 最大二叉树(单调栈)
本质上,我们考虑到,在单调栈中,我们就可以找到所有结点的儿子(或确定所有结点的父亲),因此我们需要思考,是否存在一种方法直接在单调栈运行过程中找到所有儿子?单调栈的方法不容易一次性想到,不过仔细思考我们可以观察到这样一个事实,也是。我们理解了这一个过程,相信读者就更容易思考了。内,选出最大值,递归构建结点即可。下面,我们将使用数字值代表树节点。递归的方法很容易实现,给定函数。转载 2024-05-17 15:40:01 · 857 阅读 · 0 评论 -
数据结构:二叉树的序列化和反序列化(序列和二叉树结构一一对应)
序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。原创 2024-05-16 14:02:04 · 1537 阅读 · 0 评论 -
数据结构:以Kruskal为例判断最小支撑树是否唯一
假设一个连通图。原创 2024-05-06 20:12:28 · 944 阅读 · 3 评论 -
数据结构:链表的双指针技巧
链表的技巧原创 2024-03-30 21:00:04 · 1070 阅读 · 0 评论 -
数据结构:哈密顿回路基础
在一个哈密顿回路中,除了起始和结束的顶点必须是同一个顶点,并且这个顶点恰好出现两次之外,其他每个顶点都恰好出现一次。:如遗传算法、蒙特卡洛方法等,并不保证总是能找到解决方案,但在一些情况下它们可以在多项式时间内给出近似解。:用于求解旅行商问题(TSP),该问题与哈密顿环问题紧密相关。只需要满足条件:每个点经过一次,并且是一个环路就行。:在搜索过程中,如果路径不满足条件,则回退一步。(Hamiltonian Cycle)是图论中的一个概念,指的是在一个图中。,因为需要检查每个顶点的所有排列。原创 2024-04-19 22:58:27 · 1256 阅读 · 0 评论 -
数据结构:构建完全二叉查找树
减少焦虑,做回自己原创 2024-04-05 20:44:38 · 1093 阅读 · 0 评论 -
数据结构:静态链表(编程技巧)
链表的元素用数组存储,用数组的下标模拟指针。原创 2024-03-29 19:17:52 · 894 阅读 · 0 评论 -
数据结构:差分数组
它常用于数组和列表数据结构中,可以让区间修改的操作时间复杂度降低到O(1),查询操作的时间复杂度为O(n)。差分数组最大的优势在于能够非常高效地对原始数组的连续区间进行增减操作。在处理大量区间增减值的问题时,差分数组能够大幅度减少计算量,尤其是在数据量大、修改操作频繁的情况下。看完本篇文章对差分的阐述,看到这题很容易想到差分,因为是频繁对区间的修改。差分数组是处理数组区间修改问题的强大工具,它通过巧妙地利用差分的思想,使得区间操作变得简单高效。中的某个元素值,或者得到修改后的数组,我们需要对差分数组。原创 2024-03-30 08:00:00 · 366 阅读 · 0 评论 -
单调栈的使用一:接雨水
当我们在遍历数组时,遇到一个当前遍历的柱子高度比栈顶元素的高度大的情况,这意味着我们找到了一个潜在的凹形区域的右边界。因此,单调递减栈在这个问题中的应用确保了每次计算的是有效的凹形区域,并且能够正确地计算出每个区域能够积累的水量,从而得到整个数组中能够积累的总水量。对于栈中每个元素,它的左侧边界是栈中之前的元素,右侧边界是当前考察的元素。:通过迭代的方式,栈帮助我们一步步向右“扫描”数组,每次遇到能形成新的凹形区间的元素时,就计算该区间的积水量。位置的柱子的较矮者决定的,减去凹底的高度,即。原创 2024-03-29 15:43:50 · 591 阅读 · 0 评论 -
数据结构:单调栈和单调队列
单调队列和单调栈,有LeetCode典型例题哦~原创 2024-03-29 08:45:00 · 1751 阅读 · 0 评论 -
数据结构:Trie(前缀树/字典树)
Trie 又称字典树、前缀树和单词查找树,是一颗非典型的多叉树模型,即每个结点的分支数量可能为多个。Trie这个名字取自“retrieval”,检索,读音和 try 相同。原创 2024-03-26 08:00:00 · 1272 阅读 · 0 评论 -
数据结构:最小支撑树及图的应用
最小支撑树、最小生成树原创 2024-03-25 13:56:00 · 1149 阅读 · 0 评论 -
数据结构:图的最短路径
无权图单源最短路径使用BFS求出,时间复杂度为O(n+e)。该算法可以求出单源到所有顶点的最短路,并且可以通过静态链表的方式存储各顶点的最短路径信息。在BFS访问的过程中,当访问某个顶点时,就确定了该点与源点的最短距离。虽然在关键路径中,我们使用过拓扑排序+动态规划求最长路径,时间复杂度是O(n+e)。但是这是在图存在拓扑排序时才能使用的。一般情况下的图更加复杂。一般情况下的正权图,可以使用迪杰斯特拉算法求出最短路径。Dijkstra算法可以求出单源点到所有点的最短路径。原创 2024-03-20 22:28:20 · 782 阅读 · 0 评论 -
数据结构:图的拓扑排序与关键路径
拓扑排序和关键路径原创 2024-03-18 20:09:47 · 1103 阅读 · 0 评论 -
数据结构:图的存储与遍历
绿色容易忘,黄色是笔记,蓝色是提高原创 2024-03-11 17:14:17 · 514 阅读 · 0 评论 -
时间复杂度之大O表示法
是算法输入的规模,如数组的长度,图的顶点数等;以任何数为底的,都可以是O(logn)O(nlogn):10^5到10^6。)是正整数集到正实数集上的函数。O(n):10^7到10^8之间。O(n^2):10^3到10^4。O(n^3):10^2到10^3。)) ,当且仅当存在一个正常数。)),称其时间复杂性的阶为g(一个算法时间复杂性是O(g(即时间复杂度的阶与对数底无关。O(2^n):20到30。原创 2024-03-10 11:33:47 · 442 阅读 · 0 评论