自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 哈希表笔记(1)哈希表存储结构

哈希表基础存储结构

2023-07-26 12:25:42 156

原创 堆笔记(2)模拟堆

接续上回我们实现了最简单的堆排序,这次我们来实现之前列出的五个操作。

2023-04-18 10:53:02 86

原创 堆笔记(1)堆排序

down()和up(),前者是往下调整(把一个节点往下移),后者是往上调整(把一个节点往上移),我们前面的五条操作都可以用这两个操作来实现。(由于在数组中删除最后一个元素远比删除第一个元素简单,所以我们的删除操作就是用最后一个数覆盖第一个数,然后把最后一个数给删掉)5、修改任意一个元素 heap[k] = x;堆是一个完全二叉树(一棵非常平衡的二叉树,除了最后一层节点之外,所有节点都是满的,最后一层节点从左到右依次排布)上述操作就是down(x)操作,在我们将堆中的一个节点增大时负责维护我们堆的性质。

2023-04-17 20:05:58 106

原创 并查集笔记(扩展例题)

并查集例题,带权并查集

2023-04-11 10:28:26 84

原创 数学知识(2)

算法需要的一些数学知识

2023-03-30 17:12:52 59

原创 数学知识(1)

以下为一些基础数学知识的模板1、试除法判定质数bool is_prime(int x){ if (x < 2) return false; for (int i = 2; i <= x / i; i ++ ) if (x % i == 0) return false; return true;}2、试除法分解质因数void divide(int x){ for (int i = 2; i &l

2023-03-29 22:56:06 70

原创 并查集笔记(1)

有了这一步操作,当我们第一次查询时,我们确实没有优化,和暴力差不多,但是每搜查一次,我们的树的复杂度都大大减小,随着搜查次数的增加,时间复杂度越来越低,到了最后我们只要一步操作就可得出答案,这就是并查集存在的意义。我们每次查找一个x,沿着它的祖宗结点一步一步往上查直到根节点,此时,我们将该路径上所有的结点,统统直接连接到根节点上,也即当我们完成一条路径的搜索时,我们将这条路径上的所有数的父节点都直接定义为根节点。问题三:如何合并两个集合:px是x的集合编号,py是y的集合编号。

2023-03-29 07:45:00 66

原创 Trie树笔记(1)

先以存一个abcdef为例,trie树有一个根节点root,接下来我们查询是否有a子结点,如果没有,那就创建一个,以此类推,我们一节一节创建结点,直到把f存完。当我们查找的时候,我们就看有没有标记就行了。如果发现走到一半没有路径了或者到了位置却没有标记,那就说明我们没有存入这个单词。这是一个非常非常简单的数据结构,正好适合用来作为学完KMP的一个缓冲。如果接下来要存一个bdef,那就会从之前创建的b结点往后存。Trie树是一个用来高效地存储和查找字符串集合的数据结构。

2023-03-28 16:29:46 74

原创 KMP笔记(1)

我们首先考虑这种情况:长度为m的模式串p,在s的某个位置匹配成功了,我们接下来将p往后推移再次尝试匹配,假设便宜了x位又成功了,而x

2023-03-28 12:28:08 121

原创 栈与队列笔记(2)

我们不妨先做最小值,我们在队列中将最小值之外的值删掉,比如队列里面有3 -1 -3,那么只要-3存在一天,那么3 -1就永无出头之日,又因为3和-1比-3先进入队列,所以他们会先出去,所以在-3进入的时候就可以将这两个直接删掉,保证我们的队列永远是单调递增的。仿照我们之前做单调栈例题的思想,我们需要思考队列中有哪些数是用不到的,我们想办法把他们排除在我们的遍历过程之外。我们可以很容易想到,我们需要每次选择最大值或者最小值之一来做,因为我们会把较小或者较大的数都删掉,所以我们需要遍历两遍。

2023-03-27 17:13:51 45

原创 栈与队列笔记(1)

但是我们如果利用栈的特性来写,就可以简化很多。我们先看向3,发现栈里没有数,于是输出-1,然后推入4,发现栈里有3 < 4,于是输出3,推入4,此时我们的栈还是单调递增的,然后我们看向2,从栈顶往底遍历,发现4 > 2,于是直接把4推出栈顶,发现此时栈顶的3 < 2,于是把3推出栈顶,此时栈是空的,于是输出-1,然后我们推入2,接下来看向7,我们发现栈里有2 < 7,于是输出2,推入7,然后看向5,发现栈顶7 > 5,于是推出7 ,栈顶2 < 5,于是输出2,推入5。比如例题中34275这一组数,

2023-03-27 16:46:20 70 1

原创 双链表总结(1)

双链表的模板与例题优化

2023-03-26 13:39:53 65

原创 单链表总结与例题(1)

单链表模板总结与例题分析

2023-03-26 13:13:32 74

原创 区间合并笔记(1)

区间合并,贪心算法的基础

2023-03-25 14:01:58 113

原创 离散化笔记(1)

离散化超详细解析,帮助理解难点易错点

2023-03-25 13:27:59 66

原创 位运算笔记(1)

位运算笔记,装逼用(bushi)真有用,但不多。

2023-03-24 14:55:02 58

原创 双指针算法笔记(1)

双指针算法核心思想、模板,以及万能解题思路

2023-03-24 12:56:07 94

原创 差分笔记(2)二维差分

二维差分以及适用于竞赛的相关优化

2023-03-23 17:16:27 216

原创 差分笔记(1)一维差分

一维差分笔记,以及精妙的算法简化

2023-03-23 11:42:55 100

原创 前缀和笔记(2)二维前缀和

图文并茂讲解二位前缀和

2023-03-22 22:07:46 80

原创 前缀和笔记(1)一维前缀和

一维前缀和模板

2023-03-22 20:57:16 64

原创 高精度笔记(2)乘除

高精度乘除法

2023-03-22 15:51:55 47

原创 高精度笔记(1)加减

大数加减法高精度

2023-03-22 12:01:54 81

原创 二分算法笔记(2)浮点数二分

浮点数二分个人笔记

2023-03-21 19:39:50 111 1

原创 二分算法笔记(1)整数二分

整数二分个人笔记

2023-03-21 17:56:58 37

原创 归并排序笔记(1)

归并排序个人笔记

2023-03-21 15:01:36 70

原创 快速排序笔记(1)

记录个人学习过程

2023-03-20 21:01:14 61

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除