Bo2SS

Bo2SS

编程算法

《胡船长专属课堂》笔记汇总
掌舵:还用说? 传送门 高级数据结构 二叉排序树、AVL 树 红黑树 哈夫曼树与哈夫曼编码 字符串匹配算法(上):BF、KMP、SUNDAY、SHIFT-AND、Hash 字符串匹配算法(下):Trie、AC、DAT 面试笔试算法下 从递推到动态规划(上) 从递推到动态规…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

5 字符串匹配算法(下):Trie、AC、DAT

多模匹配问题,与字符串匹配相关的数据结构 多模匹配问题 有多个模式串的匹配问题,常规思路如下: Step1:多个模式串,建立成一棵字典树 Step2:和文本串的每一位对齐匹配,模拟暴力匹配的过程 Trie 又名字典树、单词查找树,顾名思作用 看图理解 思考树…
《面试笔试算法下》笔记汇总
掌舵:光哥 传送门 从递推到动态规划(上) 从递推到动态规划(下) 单调队列与单调栈 线段树 树状数组 树状数组、线段树练习题 有问题多多指点!
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

4 字符串匹配算法(上):BF、KMP、SUNDAY、SHIFT-AND、Hash

一些经典、绝伦的单模匹配相关算法 相关定义 单模匹配问题:在文本串 $s$ 中查找某个模式串 $t$ 是否出现过 多模匹配问题:查找多个模式串 $t$ 文本串 / 母串:被查找串 $s$ 模式串:待查找串 $t$ 文本串长度为 $m$,模式串长度为 $n$ 暴力匹配法 所…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

6 树状数组、线段树练习

线段树知识请跳转:《面试笔试算法下》——4 线段树 树状数组知识请跳转:《面试笔试算法下》——5 树状数组 Lost_cows 样例输入 Copy 5 1 2 1 0 样例输出 Copy 2 4 5 3 1 思路 【问题 1】得到的答案是否唯一❓√ 从后往前,反着来观察…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

5 树状数组

前缀和数组与差分数组 【假设】原数组 $a$:$a_i,\ i\in [0,\ n]$,注意 $a_0=0$[否则差分数组的前缀和不等于原数组] 【可得】 前缀和数组 $S$:$S_i = \sum_{k=0}^{i}{a_i}$,易得 $a_i = S_i - S…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

3 单调队列与单调栈

问题引入 $RMQ (x, y)$ 函数:查询数组 $[x, y]$ 区间内部的最小值,参考RMQ——OI Wiki 如果固定询问区间的尾部,例如:$RMQ (x,7)$ 最少记录如下 4 个蓝色元素,即可满足 $RMQ (x,7)$ 的所有需求 并且这 4…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

2 从递推到动态规划(下)

三类优化方法 ① 状态转移过程的优化 不改变状态定义,使用一些特殊的数据结构或者算法专门优化转移过程 举例:扔鸡蛋 V2 ② 程序实现的优化 状态定义没变、转移过程也没有变 例如:0/1 背包问题,钱币问题 [滚动数组] ③ 状态定义的优化 大量训练才能培养出来的能力…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

1 从递推到动态规划(上)

递推算法👉动态规划 递推 兔子繁殖问题 [引入] 题意理解:幼年兔子出生后,过一个月变成成年兔子,再过一个月生下一对幼年兔子 [即第三个月] 本月数量 f (n)= 本月成年 + 本月幼年 👇 本月成年 = 上个月成年 + 上个月幼年 =上个月数量 f (n…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

4 线段树

[学习数据结构主要关注解决的是什么问题] 前置知识 解决的问题是什么?区间的修改与查询 [针对积性函数——Wiki] 问题背景 单点修改、区间查询(基础版) Modify (ind, val):修改 ind 位置的值为 val Query (start, end…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

3 哈夫曼树与哈夫曼编码

直观了解哈夫曼树和哈夫曼编码,证明哈夫曼编码是最优的变长编码 前置知识 什么是编码 最先听到编码是在什么地方?ASCII 码 'a' = (97)10 = (0110 0001)2 '0' = (48)10 = (0011 0000)2 8 位二进制编码,一字节 注意…
《高级数据结构》笔记汇总
掌舵:光哥 传送门 二叉排序树、AVL 树 红黑树 哈夫曼树与哈夫曼编码 字符串匹配算法(上):BF、KMP、SUNDAY、SHIFT-AND、Hash 字符串匹配算法(下):Trie、AC、DAT 有问题多多指点!
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

2 红黑树

工程实现中应用非常广泛 <5 个平衡条件> 结点非黑即红 根结点是黑色 [头发] 叶结点 (NIL) 是黑色 [不洗脚] 通常不用画出来,也不用考虑 NIL 结点,默认是黑色 红色结点的两个子结点都是黑色⭐ 红色结点不能接红色结点 从根结点到所有叶结点的路径上…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

1 二叉排序树、AVL树

数据结构,就是定义一种性质,并且维护这种性质 BS 树👉AVL 树 二叉排序树 [又叫二叉搜索树、二叉查找树] 基础知识 性质:对于任意一个三元组,左子树 < 根结点 < 右子树 用途:解决与查找、排名相关的检索需求 【为什么树形结构的查找入口一定是根结点?】 首先明白点…
《基础数据结构》笔记汇总
掌舵:于船 传送门 顺序表与链表 栈与队列 树与二叉树 排序与查找 堆与优先队列 森林与并查集 有问题多多指点!
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

6 森林与并查集

并查集:合并集合 [建立连通关系]、查找集合中的连通关系 [判断某两个点是否连通] 连通性问题 规则:已经具有连通关系的点不能重复连接 将所有点分成了 2 个集合:①、② [PS] 点与点的关系 (合并、判断连通)→也可以是→集合与集合的关系 Quic…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

5 堆与优先队列

回顾 [完全二叉树] 完全二叉树默认从 1 开始编号 这样可以保证左孩子、右孩子编号简洁 [否则] 左孩子编号需为 2 * i + 1,右孩子编号需为 2 * i + 2 可编号的性质→可用顺序结构存储,而不需要保存下一个结点的地址 二叉树→数组的转换…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

4 排序与查找

排序 四象限原则:稳定 / 非稳定、内部 / 外部 稳定:相同元素在排序前后的相对位置不变 内部:需要将数据整个加载到内存中进行排序 【考虑从小到大排序】 稳定排序 插入(内部) 前:已排序区;后:待排序区 后面的数在前面找位置插空 一个一个比较、交换,实现…
Ownership of this blog data is guaranteed by blockchain and smart contracts to the creator alone.