![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基本数据结构
文章平均质量分 53
不 彳亍
这个作者很懒,什么都没留下…
展开
-
基础数据结构之二叉堆
二叉堆一般用于涉及插入、删除、查询最值得题目。往往配合其它题型使用。超市贪心题目。需要用到二叉堆的查询最值、插入和删除功能。序列多路归并问题。注意到是求和问题,题目让求m个序列“合并”得到的n个值,如果我们得到了前m - 1个序列“合并”n个值,那么只需要把这n个值看成一个新的序列,转换成两个序列“合并”成n个值的问题。很明显用递归或递推都可以。我们只需要解决如何“合并”两个序列即可。两个序列如何合并呢?A : a1 a2 a3 a4 …… an(A已经排好序)B : b1 b2 b3 b4原创 2021-02-24 18:13:33 · 111 阅读 · 0 评论 -
基础数据结构之trie树
Trie树是一种实现字符串快速检索的多叉树结构。把一堆字符串压缩到树结构中构成Trie树,实现快速检索。Trie树的题一般应用于“前缀检索”、“最大异或值”这类题。先把全部数据储存到Trie树中,再遍历每个数据,进行检索。前缀检索前缀统计电话列表很简单的题。可以先把数据全部保存到Trie树中再检索,也可以边插入边判断。最大异或值最大异或对涉及到位运算的题,可以把数字看成31位二进制数,再把每一位看成一个字符,转换为Trie树问题。将每个数按二进制位从高到低保存到Trie树中,然后再遍历原创 2021-02-24 17:12:31 · 99 阅读 · 0 评论 -
基础数据结构之字符串
字符串的两种经典算法:KMP算法和最小表示法。KMP算法《算法竞赛进阶指南》上的推导过程写的很详细,推荐看一下。推导过程的难点在于要理解如何遍历某一位置i的“候选值”集合。理解之后其它问题就都迎刃而解了。周期KMP算法推导过程中“自我匹配”的next数组的应用。next[i]表示字符串A中“以i结尾的非前缀子串”和“A的前缀”能够匹配的最长长度。我们发现,如果字符串存在循环节,那么肯定存在某一非前缀后缀等于某一前缀。该匹配长度肯定是“候选值”集合中的一个值,那么该值是否就是next[i]呢?原创 2021-02-16 21:42:21 · 151 阅读 · 0 评论 -
基础数据结构之链表和邻接表
邻值查找题目让求min1≤j<i|Ai−Aj|。我们将所有数放到数轴上,题目等价于让求和Ai靠的最近的元素A[j],并且满足j < i。我们发现如果排好序,那么对原序列的最后一个数来讲,是可以无视“j < i”这个条件。逆序遍历原序列的每一个数Ai,找到它在排好序的序列中的位置Bj,比较与它相近的两个数Bj - 1和Bj + 1。之后再删去Bj。删除操作如果用数组储存,时间复杂度为O(n^2);用链表是O(1)。...原创 2021-02-16 18:51:40 · 121 阅读 · 0 评论 -
基础数据结构之队列题型
队列是一种先进先出的数据结构。有一些题目我们需要先推导它们的性质,然后根据其性质使用队列。这种题目的难度往往较大。蚯蚓双端队列单调队列问题单调队列是一种经典题型。和单调栈一样,保存一堆单调递增的数据。不同的是,单调队列需要从最前面的元素开始操作,单调栈需要从最后面的元素进行操作。最大子序和...原创 2021-02-16 18:25:08 · 171 阅读 · 0 评论 -
基础数据结构之哈希题型
字符串HashAcWing 138. 兔子与兔子(模板题)套用这个模板,我们可以求得字符串中,任意一个子串的哈希。步骤是先求字符串的前缀(后缀)hash(特别要注意求前缀的方法,一个规模小的前缀是如何推到规模大的前缀的: h[i] = h[i - 1] * base + s[i] - ‘a’ - 1)。有了前缀hash值之后,可以求得任意子串s[L – R]的hash值:h[L – R] = h[R] - h[L - 1] * p[R - L + 1] (p数组存的是base的“下标”次方)。再遇到原创 2021-02-10 18:30:57 · 147 阅读 · 0 评论 -
栈的题型
两个栈的配合建立两个栈,可以实现O(1)查询最小值的操作。https://www.acwing.com/problem/content/90/“对顶栈”的应用https://www.acwing.com/problem/content/130/进出栈序列问题题目:给定1~N这N个整数和一个无限大的栈,每个数都要进栈并出栈一次。如果进栈的顺序为1,2……N,那么可能的出栈顺序有多少种?方法一:dfs方法二:递推方法三:动态规划方法四:卡斯兰数表达式计算:题型:后缀表达式原创 2021-02-06 12:50:19 · 117 阅读 · 0 评论