算法基础
文章平均质量分 89
以C++的视角 讲解基础算法
一位虔诚的软微信徒
一个励志想考上北大软微的朝圣者,圣软微的虔诚信徒!我想说:软憨无罪!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法基础详解(七)递归与分治
作者说:我想说 基础 不等于 简单 ;算法能力不是一蹴而就的,而是来自日积月累的积累和练习!积小流终成江海,诸君 加油!!原创 2026-04-28 15:01:57 · 451 阅读 · 0 评论 -
一文带你吃透八大排序!(C语言超详解版 + 快排三路划分优化加餐 + 工业级自省排序加餐解析!)
欢迎来到我的频道码云连接。原创 2026-04-23 21:40:48 · 409 阅读 · 1 评论 -
算法基础详解(六)倍增思想与离散化思想
https://www.luogu.com.cn/problem/P1226关于如何解决存不下的问题!这里算是个取模运算的规则 !加法取模(A+B)%MOD=((A%MOD)+(B%MOD))%MOD (A + B) \% MOD = ((A \% MOD) + (B \% MOD)) \% MOD (A+B)%MOD=((A%MOD)+(B%MOD))%MOD乘法取模(A×B)%MOD=((A%MOD)×(B%MOD))%MOD (A \times B) \% MOD = ((A \% MOD) \原创 2026-04-09 20:50:27 · 414 阅读 · 0 评论 -
算法基础详解(五)二分算法——二分查找与二分答案
发现解集中,存在二段性根据待查找区间的中点位置,分析答案会出现在哪一侧;接下来舍弃一半的待查找区间,转而在有答案的区间内继续使用二分算法查找结果。如:定义两个指针left 和 right分别指向解空间的起始位置和终止位置!然后再求一下中点位置mid,假如我要寻找的是2mid指向3那么此时我们就可以舍弃掉这个区间的值!下面我会很细节的讲解该如何找到2的起始位置(3号位置的2)和2的终止位置(5号位置的2)结合上面的图 我们发现初始位置可以划分为小于2 和大于等于2这两个部分。原创 2026-04-08 21:12:41 · 394 阅读 · 0 评论 -
算法基础详解(4)双指针算法
欢迎来到我的频道作者说:我想说 基础 不等于 简单;算法能力不是一蹴而就的,而是来自日积月累的积累和练习!积小流终成江海,诸君 加油!!原创 2026-04-06 17:37:10 · 1056 阅读 · 0 评论 -
算法基础详解(三)前缀和与差分算法
欢迎来到我的频道作者说:我想说 基础 不等于 简单;算法能力不是一蹴而就的,而是来自日积月累的积累和练习!积小流终成江海,诸君 加油!!原创 2026-04-06 00:21:20 · 419 阅读 · 0 评论 -
算法基础详解(二)枚举算法——普通枚举与二进制枚举
关于:(1全变 0全不变)1与任何数字都是0变11变00与任何数字都是0还是01还是1消消乐规则:任何两个相同的数一起是0!关于(0能把1全变成0)1与任何数字都是1不变 0不变0与任何数字都是0不变1变0关于(1能把0全变成1)1与任何数字都是1不变0变10与任何数字都是1不变0不变。原创 2026-04-04 18:19:13 · 865 阅读 · 0 评论 -
算法基础详解(一)模拟算法与高精度算法
欢迎来到我的频道作者说:我想说 基础 不等于 简单;算法能力不是一蹴而就的,而是来自日积月累的积累和练习!积小流终成江海,诸君 加油!!原创 2026-04-01 00:26:46 · 774 阅读 · 0 评论 -
与哈希表有关算法题
欢迎来到我的频道。原创 2026-03-29 16:42:42 · 312 阅读 · 0 评论 -
与链表有关的算法题
而 STL 里面的 list 的底层就是动态实现的双向循环链表,增删会涉及 new 和 delete,效率不高,竞赛中一般不会使用,而是以静态实现的方式。本题相当于告诉了我们每一个点的后继,使用静态链表的存储方式能够很好的还原这个队列。次就删除后面的元素 (比如给的测试样例是每走3次删一个元素,我们每数2次就删除它后面的元素),这是因为单链表删除有个关键的步骤是。使⽤循环链表模拟即可!频繁的在某⼀个位置之前和之后插⼊元素,因此可以⽤双向循环的链表来模拟。关于链表的静态实现 可以参考我写的博客。原创 2026-03-12 18:16:04 · 168 阅读 · 0 评论 -
与栈有关的算法题
后缀表达式(Postfix Expression),也称为逆波兰表达式(Reverse Polish Notation, RPN),是一种将运算符写在操作数之后的数学表达式表示法。一直让元素进栈,进栈的同时判断是否需要出栈。当所有元素模拟完毕之后,如果栈中还有元素,那么就是一个非法的序列。模拟结束之后,把未匹配位置的左括号,添上一个相应的右括号。⽤栈模拟后缀表达式的计算过程。类型的数组标记哪些位置可以匹配,哪些位置不可以匹配。先用栈模拟一遍括号匹配的过程,同时用一个。用栈来模拟进出栈的流程。原创 2026-03-14 16:35:10 · 249 阅读 · 0 评论 -
算法竞赛有关数据结构的补充(2)--- 栈、队列的静态实现和树的实现
树型结构是一类重要的非线性数据结构。有一个特殊的结点,称为根结点,根结点没有前驱结点。除根结点外,其余结点被分成 (M) 个互不相交的集合 (T_1、T_2、…、T_m),其中每一个集合 (T) 又是一棵树,称这棵树为根节点的子树。因此,树是递归定义的。原创 2026-03-19 21:45:12 · 412 阅读 · 0 评论 -
算法竞赛有关数据结构的补充---顺序表、单、双向链表的静态实现
在算法竞赛中,我们主要关⼼的其实是时间开销,空间上是基本够⽤的。因此,定义⼀个超⼤的静态数组来解决问题是完全可以接受的。因此,关于顺序表,采⽤的就是静态实现的⽅式。当然顺序看着比较简单 我再插入一个C 把D插到BC中间。解法⼆:如果存储的值数据范围不⼤,可以⽤哈希表优化。直接⽆视 prev 数组,与单链表的遍历⽅式⼀致。根据之前的经验可知,最后修改p的前驱指针即可。直接使⽤ mp 数组优化了。解法⼀:遍历整个链表即可。原创 2026-03-09 19:32:23 · 200 阅读 · 0 评论 -
与红黑树有关算法题
对于每一个新来的数 (x),找出之前的数中,大于等于 (x) 的最小值 (y),以及小于等于 (x) 的最大值 (z),也就是距离 (x) 最近的一大一小两个数。那么 (y - x) 与 (x - z) 的最小值就是当天的最小波动值。将 <单词, 含⾦量> 绑定放在 map 中,然后遍历作⽂中的每⼀个字符串,找找 map 中对应单词的含⾦量,累加起来即可。与上题的解法类似,⽤ set 来存储⽊材的信息,每次进货和出货操作都在 set 中进⾏。把所有的最小波动值累加起来即可。原创 2026-03-26 20:08:45 · 215 阅读 · 0 评论 -
与队列有关练习题
先来的乘客,在时间逐渐增大的时候会先出列。因此,可以用队列模拟整个过程。直接按照静态队列的实现方式进行模拟即可!类型的数组,快速判断元素是否在队列中。创建一个队列,模拟整个流程。原创 2026-03-16 20:40:51 · 253 阅读 · 0 评论 -
与vector容器有关练习题
vector的使用。原创 2026-03-08 17:56:56 · 400 阅读 · 0 评论 -
算法竞赛有关数据结构的补充(3)—— 二叉树、堆和哈希表的静态实现(包括红黑树和AVL树动态实现)
二叉树是一种特殊的树型结构,它的特点是每个结点至多只有 2 棵子树(即二叉树中不存在度大于 2 的结点),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉的意思是这种树的每一个结点最多只有两个孩子结点。注意这里是最多有两个孩子,也可能没有孩子或者是只有一个孩子。注意:二叉树结点的两个孩子,一个被称为左孩子,一个被称为右孩子。其顺序是固定的,就像人的左手和右手,不能颠倒混淆。⼀棵⼆叉树的所有⾮叶⼦节点都存在左右孩⼦并且所有叶⼦节点都在同⼀层上,那么这棵树就称为满⼆叉树。对一棵树有 n 个结点的二叉树按层原创 2026-03-27 00:00:04 · 447 阅读 · 0 评论 -
与堆有关算法题
因为所有的函数都是递增的,因此这种策略绝对是正确的。由题意可知,所有的二次函数的 A 和 B 都是大于 0 的,因此在 (x>0) 的区间内,所有函数值都是递增的。所以堆里面需要存一个结构体,标注:函数值 + 哪个函数 + 代入的值,然后按照函数值创建小根堆即可。首先,要经常拿到异性中舞蹈技术差值最小的值,所以考虑到用堆来解决问题,也就是用堆存所有相邻的异性,然后根据技术差建立小根堆。全部放进去,然后每次拿出堆顶元素a[i] + b[j]时,再把 a[I]+b[j+1] 放进去,这样重复n次即可。原创 2026-03-25 20:20:04 · 360 阅读 · 0 评论 -
与二叉树有关算法题
首先,由于它没有明确说明谁是左右孩子,所以只能用vector数组来存储,里面dfs的递归思想也是很常见,bfs就是用队列模拟找哪一层最多也不解释,最难的两点距离,本质就是求公共的祖先,用一个fa[N]数组存储父亲结点,然后把其中一个结点一直往上遍历直到根结点,然后存储中间遍历的所有结点,然后让另一个结点往上爬,遇到第一个中间遍历过的结点就行了。解释:原后序是 BDCA,去掉根A和左子树B,剩下 DC 对应右子树。⼆叉树的⾼度 = 1 + max(左⼦树的⾼度, 右⼦树的⾼度);因此,可以递归解决。原创 2026-03-22 16:20:20 · 372 阅读 · 0 评论
分享