算法:数据结构
文章平均质量分 92
数据结构算法
wmy0217_
2023天天开心(♡˙︶˙♡)
展开
-
单调栈、单调队列
文章目录单调栈单调队列单调栈AcWing 830. 单调栈1、暴力做法:外层循环枚举每一个元素 x,内层循环找到这个 x 的左边第一个比它小的数。在求 x 的左边第一个比它小的数,是将 x 左边所有的数全部入栈,从栈顶开始找到第一个比它小的数,找到后停下来。2、在暴力做法下进行优化。我们发现,如果 a1 >= a2,那么当找 x 的左边第一个比它小的数时, 如果 i < j,...原创 2020-04-28 13:36:49 · 200 阅读 · 0 评论 -
哈希表(散列表)
文章目录基本概念例题拉链法求解开放寻址法求解基本概念哈希表也称散列表,通过将给定的关键值映射到表中的一个位置来访问记录,以加快查找的速度,时间复杂度为O(1)。比如,给定一个表m,给定一个关键值 x,那么 h(x) 就称为哈希函数,表m就称为哈希表,h(x) 就是 x 在哈希表m中存储的下标。那么 h(x) 怎么求呢,我们需要对 某个数 取余即可。举个例子:这一组数有N=6个,为{3、...原创 2020-04-06 22:26:59 · 543 阅读 · 0 评论 -
并查集算法
并查集操作、原理、代码实现、例题原创 2020-03-19 20:00:33 · 18364 阅读 · 9 评论 -
Trie树(字典树)
含义:Trie树一般指字典树,又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。假设我们有五个字符串,code、cook、five、file、fat。现在需要在里面多次查找某...原创 2020-03-06 20:43:02 · 423 阅读 · 0 评论 -
831. KMP字符串
题目描述给定一个模式串S,以及一个模板串P,所有字符串中只包含大小写英文字母以及阿拉伯数字。模板串P在模式串S中多次作为子串出现。求出模板串P在模式串S中所有出现的位置的起始下标。输入格式第一行输入整数N,表示字符串P的长度。第二行输入字符串P。第三行输入整数M,表示字符串S的长度。第四行输入字符串M。输出格式共一行,输出所有出现位置的起始下标(下标从0开始计数),整数之间用空...原创 2020-03-02 23:39:17 · 326 阅读 · 0 评论 -
用数组模拟栈和队列
文章目录用数组模拟栈用数组模拟队列用数组模拟栈828. 模拟栈实现一个栈,栈初始为空,支持四种操作:(1) “push x” – 向栈顶插入一个数x;(2) “pop” – 从栈顶弹出一个数;(3) “empty” – 判断栈是否为空;(4) “query” – 查询栈顶元素。现在要对栈进行M个操作,其中的每个操作3和操作4都要输出相应的结果。输入格式第一行包含整数M,表示操作...原创 2020-03-01 20:35:52 · 278 阅读 · 0 评论 -
用数组模拟链表
数据结构课本上的单链表算法,在建立每个结点时都需要new一个空间,new函数耗时长,当结点数较多时,每个结点都需要new,这样的算法在题中容易超时。利用数组模拟单链表可以防止超时问题826. 单链表实现一个单链表,链表初始为空,支持三种操作:(1) 向链表头插入一个数;(2) 删除第k个插入的数后面的数;(3) 在第k个插入的数后插入一个数现在要对该链表进行M次操作,进行完所有操...原创 2020-03-01 15:56:07 · 356 阅读 · 0 评论