- 博客(106)
- 收藏
- 关注
原创 算法篇(七)【二分算法】
二分算法的难点在于对各种各样的细节问题 。所以 , 就算你把二分算法的模板背熟了,但是忽略了各种乱七八糟的边界问题 , 也很难全都AC
2025-03-25 16:31:10
1027
原创 算法篇(三)【枚举】
顾名思义 , 就是把所有情况所有罗列出来 , 然后找出符合题目要求的哪一个 。因此 , 枚举是一种纯暴力的算法 。一般情况下 , 枚举策略都是会超时的 , 此时要先根据题目的数据范围来判断暴力枚举是否可以通过 , 如果不行的话 , 就需要用到后面介绍的各种算法来优化 (比如二分、双指针 、前缀 、 差分等)
2025-03-22 15:05:40
291
原创 算法篇(二)【高精度】
当数据的值特别大 , 各种类型都存不下的时候 , 此时就需要用高精度算法来计算加减乘除:1) 先用字符串读入这个数 , 然后用数组逆序存储该数的每一位2)利用数组 , 模拟加减乘除运算的过程
2025-03-18 22:13:40
411
原创 蓝桥备赛(19)- 哈希表和 unordered_ set 与unordered_map(下)
一般来说 , 假设数据个数为 n , 我们会创建数组大小为 大于2n 的第一个质数 (因为如果数据密集,存储空间少 , 会出现多次探测)
2025-03-15 11:30:11
683
原创 蓝桥备赛(19)- 哈希表和 unordered_ set 与unordered_map(上)
哈希表(hash table),又称散列表,是根据 关键字直接 进行访问的数据结构。哈希表建立了一种关键字和存储地址之间的直接映射关系,使每个关键字与结构中的唯⼀存储位置相对应。
2025-03-14 22:14:26
358
原创 蓝桥备赛(18)- 红黑树和 set 与 map(下)
红黑树(简称 RBT),也是一棵二叉搜索树(左 < 根 < 右) 。它是在搜索树的基础上,使每个结点上增加一个存储位表示结点的颜色,可以是 Red 或者 Black。
2025-03-14 21:10:23
1324
原创 蓝桥备赛(17)- 堆和 priority queue(下)
普通的队列是一种先进先出的数据结构,即元素插入在队尾,而元素删除在队头。优先级队列中,元素被赋予优先级,当插入元素时,同样是在队尾,但是会根据优先级进行位置调整,优先级越高,调整后的位置越靠近队头;同样的,删除元素也是根据优先级进行,优先级最高的元素(队头)最先被删除。
2025-03-12 01:45:00
1262
原创 蓝桥备赛(17)- 堆和 priority queue(上)
堆(heap),是一棵有着特殊性质的完全二叉树 , 可以用来实现优先级队列(priority queue)
2025-03-11 15:21:43
323
原创 蓝桥备赛(16)- 二叉树
二叉树是特殊的树形结构:1)每个结点最多只有 2 棵子树(即二叉树中不存在度大于2 的结点)2)二叉树的子树有左右之分 , 其次序不能任意颠倒 ---> 有序树
2025-03-11 13:45:30
798
原创 蓝桥备赛(13)- 链表和 list(下)
new 和 delete 是非常耗时的操作在算法比赛中,一般不会使使用 new 和 delete 去模拟实现⼀个链表。而且STL 里面的 list 的底层就是动态实现的双向循环链表,增删会涉及 new 和 delete,效率不⾼,竞赛中⼀般不会使用,这里了解一下即可。
2025-03-08 17:08:48
1031
原创 蓝桥备赛(12)- 顺序表和 vector(下)
C++ 的 STL 提供了⼀个已经封装好的容器 - vector ,有的地方也叫作可变⻓的数组。 vector 的底层就是⼀个会⾃动扩容的顺序表,其中创建以及增删查改等等的逻辑已经实现好了,并且也完成了封装。
2025-03-07 22:05:56
1705
原创 蓝桥备赛(11)- 数据结构、算法与STL
1. 信息学竞赛中,C++ 通常设定 1 到 2 秒的时间限制,要控制运行次数在 10^7 ⾄ 10^8 之间。2. 空间限制在128MB 或 256MB ,可以开⼀个3 x 10 ^7 大小的int 类型数组,或者5000x5000大小的⼆维数组,⼀般情况下都是够⽤的。
2025-03-06 20:33:04
2582
原创 蓝桥备赛(十)- 指针和动态内存管理
我们知道计算机上 CPU (中央处理器)在处理数据的时候 , 需要的数据是在内存中读取的 , 处理后的数据也会放回在内存中;电脑内存有 8GB/16GB/32GB等等,那这些内存空间是如何高效管理的?
2025-03-05 21:17:54
579
原创 蓝桥备赛(八)- 位运算和操作符属性(下)
所有偶数的 2 进制表示中,最低位⼀定是 0 ;所有奇数的 2 进制表示中,最低位⼀定是 1 ;所以将⼀个数字与 1 进行按位与运算,即可判断这个数是奇数还是偶数。
2025-03-03 17:05:58
799
原创 蓝桥备赛(七)- 函数与递归(中)
函数重载 : C++ 中的函数重载是指在 同一个作用域中可以有多个同名函数 , 它们的函数名称相同 , 但是参数列表不同 。
2025-03-02 11:38:55
1334
原创 蓝桥备赛(七)- 函数与递归(上)
数学中 , 我们其实就见过函数的概念 , 比如 : 一次函数 y = kx + b , k 和 b 都是常数 , 给一个任意的x 就得到一个 y 值。 其实C/C++语言中就引入了函数(function)的概念 , 有些翻译成:子程序 ; 子程序这种翻译较为准确一些 。函数就是一个完成某项特定任务的一小段代码 ;这段代码是有特殊写法和调用方法的
2025-03-01 20:13:25
1073
原创 蓝桥备赛(五)- string(下)
在实际编写代码的时候 , 经常会设计及两个字符串比较大小 , 比如 : 判断你输入的密码是否正确 , 就需要将输入的密码 和 数据库中正确的密码比较。
2025-02-28 21:31:33
1142
原创 蓝桥备赛(五)- string(上)
string 字符串其实是一种更加高级的封装 , string 字符串中包含大量的方法 , 这些方法使得字符串的操作变得更加简单 , string 使用的好 , 慢慢的 , 字符数组也就很少使用了 。 毕竟 , 智能手机 和 大哥大相比 , 我还是会选择智能手机的 。
2025-02-28 13:37:53
1062
原创 蓝桥备赛(四)- 数组(下)
数组的元素如果是字符类型 , 这种数组就是字符数组 , 字符数组可以是一维数组 , 可以是二维数组 (多维数组)。
2025-02-27 16:46:30
1285
原创 蓝桥备赛(四)- 数组(中)
前面所学习的数组称为一维数组 , 数组的元素都是内置类型的 , 如果我们把一维数组作为数组的元素 , 这时候就是二维数组 , 二维数组作为数组元素的数组被称为三位数组 , 二维数组以上的数组统称 多维数组 。
2025-02-26 17:41:53
650
原创 蓝桥备赛(四)- 数组(上)
数组是一组相同类型元素的集合:1. 数组中存放的是一个或者多个数据,但是数组元素个数不能为02. 数组中存放的多个数据,类型是相同的。
2025-02-25 16:11:58
1279
原创 蓝桥备赛(三)- 条件判断与循环(下)
for 和 while 在实现循环的过程中都有初始化 、 判断 、 调整这三个部分 , 但是 for 循环的三个部分非常集中 , 便于代码的维护 , 而如果代码较多的时候 while 循环的三个部分就比较分散 , 所以 从形式上 for 循环要更优一些
2025-02-25 09:58:08
937
原创 蓝桥备赛(三)- 条件判断与循环(中)
小提示:关于代码的简洁性 , 前期不要追求简洁 , 先写出来 , 必要时暴力求解 , 然后优化。优化的方式可以是自己想到的 , 有时候也可以模仿别人的代码 。 先完成 !!!再完美!!!
2025-02-24 13:45:32
668
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人