自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构基础 之 KMP算法

KMP算法KMP算法主要题型暴力做法KMP算法思想题目题目链接AC代码KMP算法主要题型KMP是一种主要用于处理两个字符串相匹配的算法。例如:在字符串 “BBC ABCDAB ABCDABCDABDE” 之中匹配 “ABCDABD”。暴力做法(1)首先B与A进行匹配,不对应,匹配下一个字母,直到找到A与A对应为止。(2)第一个字母匹配完成之后,匹配第二个字符,发现ABCDAB均可以匹配,但是D与‘ ’不匹配。(3)整体向后移动一个字符继续寻找可以匹配首字母的位置,重复第二个过程。在上述的

2021-11-01 16:15:40 193

原创 数据结构基础 之 单调队列

单调队列单调队列主要题型暴力做法算法思想题目题目链接AC代码单调队列主要题型求滑动窗口之中的最大值或最小值暴力做法通过两侧循环来遍历数组,第二层循环模拟滑动窗口,通过比较记录最大值(最小值)int mx = -INF;for(int i = 0; i < n; i ++ ){ for(int j = i; j < i + 3; j ++ ){ mx = max(a[j], mx); } cout << mx << "

2021-10-31 15:27:11 119

原创 数据结构基础 之 单调栈

单调栈单调栈主要题型暴力做法算法思想题目题目链接AC代码单调栈主要题型给定一个序列,输出每一个数左边第一个比这个数小的一个数。暴力做法两层循环,逐个遍历每一个数,知道找到第一个比当前数据小的数为止。for(int i = 0; i < n; i ++ ){ for(int j = i; j >= 0; j -- ){ if(a[j] < a[i]) { cout << a[j] << " "

2021-10-31 13:31:57 104

原创 数据结构基础 之 队列

队列队列初始化基本操作队列队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。图解:(队列的物理模型可以抽象为单向导通的结构)(因为队列是单向导通的结构所以有着 先进先出 的特点)初始化使用数组来模拟队列的操作过程同时需要两个变量来指向头结点和尾结点图解:(hh 指向头节点,tt 指向尾节点)(注意在初始化的时候要将 tt 初始化

2021-10-27 19:11:28 136

原创 数据结构基础 之 栈

栈(stack)栈初始化基本操作插入删除判断栈是否为空取出栈顶元素的值题目题目描述:输入格式输出格式输入样例输出样例AC代码栈栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。图解:(栈的物理模型可以抽象为单开口的桶状结构)(因为栈

2021-10-27 13:32:04 109

原创 数据结构基础 之 双链表

双链表(double list)双链表初始化基本操作插入双链表双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。图解:(e[x] 记录所存的值,l[x] 记录左指针所指向的结点,r[x] 记录右指针指向的结点)初始化双链表在初始化的时候可以直接简写,使 0 结点为左端点,1 结点为右端点即可图解:(即 0 结点作为头结点,1 结点作为尾结点)

2021-10-27 12:54:57 407

原创 数据结构基础 之 单链表

单链表(List)单链表初始化基础操作插入删除单链表的遍历题目题目描述输入格式输出格式输入样例输出样例AC代码单链表单链表是最简单的链表形式。我们将链表中最基本的数据称为节点(node),每一个节点包含了数据块和指向下一个节点的指针。(也就是说,每一个节点中记录一个数据和一个指针)图解:(e[x] 记录所存的值,ne[x] 记录所指向的结点的下标)初始化初始状态链表只有一个头节点指向一个空节点,空节点下标用 ‘-1’ 表示即可图解:(head 表示头结点指针)代码表示:(idx记录当前处理

2021-10-26 11:21:24 372

原创 数据结构基础

数据结构基础什么是数据结构研究对象常用的数据结构单链表什么是数据结构  数据结构(data structure)是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。简而言之,数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即带“结构”的数据元素的集合。“结构”就是指数据元素之间存在的关系,分为逻辑结构和存储结构。  数据的逻辑结构和物理结构是数

2021-10-06 19:39:18 330

空空如也

空空如也

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

TA关注的人

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