自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原来是猿的成长足迹

闯入计算机的世界,爱上二进制的世界

  • 博客(106)
  • 收藏
  • 关注

原创 算法篇(八)【递归】

什么是递归?递归就是自己调用自己

2025-04-08 16:29:10 338

原创 算法篇(七)【二分算法】

二分算法的难点在于对各种各样的细节问题 。所以 , 就算你把二分算法的模板背熟了,但是忽略了各种乱七八糟的边界问题 , 也很难全都AC

2025-03-25 16:31:10 1027

原创 算法篇(六)【双指针】

双指针算法有时候也叫  尺取法 或者 滑动窗口 , 是一种优化暴力枚举策略的手段 :

2025-03-25 09:15:26 577

原创 算法篇(五)【差分】

前缀和和差分的核心思想是预处理 , 可以在暴力枚举的过程中 , 快速给出查询结果 , 从而优化时间复杂度 。

2025-03-23 16:55:32 465

原创 算法篇(四)【前缀和】

前缀和与差分的核心思想是   预处理 , 可以再暴力枚举的过程中 , 快速给出查询结果 , 从而优化时间复杂度。

2025-03-22 18:59:56 544

原创 算法篇(三)【枚举】

顾名思义 , 就是把所有情况所有罗列出来  , 然后找出符合题目要求的哪一个 。因此 , 枚举是一种纯暴力的算法 。一般情况下 , 枚举策略都是会超时的 , 此时要先根据题目的数据范围来判断暴力枚举是否可以通过 , 如果不行的话 , 就需要用到后面介绍的各种算法来优化 (比如二分、双指针 、前缀 、 差分等)

2025-03-22 15:05:40 291

原创 算法篇(二)【高精度】

当数据的值特别大 , 各种类型都存不下的时候 , 此时就需要用高精度算法来计算加减乘除:1) 先用字符串读入这个数 , 然后用数组逆序存储该数的每一位2)利用数组 , 模拟加减乘除运算的过程

2025-03-18 22:13:40 411

原创 算法篇(一)【模拟】

模拟 。 顾名思义 , 就是题目让你做什么你就做什么 , 考察的是将思路转化成代码的代码能力 。

2025-03-18 17:35:38 340

原创 蓝桥备赛(20)- 排序

算法思想,将会伴随我们学习后面所学到知识。1)堆排序中的贪心思想2)归并排序中的分治思想3)快速排序里面的递归思想等

2025-03-15 16:10:24 1217

原创 蓝桥备赛(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

原创 蓝桥备赛(18)- 红黑树和 set 与 map(上)

构造一棵二叉搜索树的目的  , 并不是为了排序,而是为了提高查找和输入删除关键字的速度。

2025-03-13 21:08:51 1055

原创 蓝桥备赛(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

原创 蓝桥备赛(16)- 树

树型结构(一对多)是⼀类重要的非线性数据结构

2025-03-09 21:45:29 868

原创 蓝桥备赛(15)- 队列和 queue

队列也是⼀种访问受限的线性表,它只允许在表的一端进行插入操作,在另一端进行删除操作

2025-03-09 11:22:23 675

原创 蓝桥备赛(14)- 栈和 stack

栈是一种只允许  在  一端 进行数据插入和删除操作的  线性表。

2025-03-09 00:30:00 1372

原创 蓝桥备赛(13)- 链表和 list(下)

new 和 delete 是非常耗时的操作在算法比赛中,一般不会使使用 new 和 delete 去模拟实现⼀个链表。而且STL 里面的 list 的底层就是动态实现的双向循环链表,增删会涉及 new 和 delete,效率不⾼,竞赛中⼀般不会使用,这里了解一下即可。

2025-03-08 17:08:48 1031

原创 蓝桥备赛(13)- 链表和 list(上)

链表 : 用  链式存储  实现的线性表   

2025-03-08 15:09:09 1219

原创 蓝桥备赛(12)- 顺序表和 vector(下)

C++ 的 STL 提供了⼀个已经封装好的容器 - vector ,有的地方也叫作可变⻓的数组。 vector 的底层就是⼀个会⾃动扩容的顺序表,其中创建以及增删查改等等的逻辑已经实现好了,并且也完成了封装。

2025-03-07 22:05:56 1705

原创 蓝桥备赛(12)- 顺序表和 vector(上)

线性表是 n 个具有 相同特性 的数据元素的有序序列 。

2025-03-07 18:41:33 1171

原创 蓝桥备赛(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

原创 蓝桥备赛(九)- 结构体和类

结构体是⼀种  自定义  的类型,这种自定义类型可以描述一些复杂对象。

2025-03-04 21:15:18 1248

原创 蓝桥备赛(八)- 位运算和操作符属性(下)

所有偶数的 2 进制表示中,最低位⼀定是 0 ;所有奇数的 2 进制表示中,最低位⼀定是 1 ;所以将⼀个数字与 1 进行按位与运算,即可判断这个数是奇数还是偶数。

2025-03-03 17:05:58 799

原创 蓝桥备赛(八)- 位运算和操作符属性(上)

无论是 2进制、8进制、10进制、16进制 , 它们表示的都是数值,只是 数值的不同表示方法罢了

2025-03-03 08:00:00 949

原创 蓝桥备赛(七)- 函数与递归(下)

递归中的递 就是递推的意思 , 归就是 回归的意思 。

2025-03-02 13:56:52 860

原创 蓝桥备赛(七)- 函数与递归(中)

函数重载 : 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

原创 蓝桥备赛(六)- C/C++输入输出

单在 --> 程序运行一次 , 就处理一组

2025-03-01 13:35:00 1950 3

原创 蓝桥备赛(五)- 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

原创 Dev-C++不支持C++11怎么办 ?

Dev-C++不支持C++11怎么办 ?

2025-02-25 11:38:33 195

原创 蓝桥备赛(三)- 条件判断与循环(下)

for 和 while 在实现循环的过程中都有初始化 、 判断 、 调整这三个部分 , 但是 for 循环的三个部分非常集中 , 便于代码的维护 , 而如果代码较多的时候 while 循环的三个部分就比较分散 , 所以 从形式上 for 循环要更优一些

2025-02-25 09:58:08 937

原创 蓝桥备赛(三)- 条件判断与循环(中)

 小提示:关于代码的简洁性 , 前期不要追求简洁 , 先写出来 , 必要时暴力求解 , 然后优化。优化的方式可以是自己想到的 , 有时候也可以模仿别人的代码 。  先完成 !!!再完美!!!

2025-02-24 13:45:32 668

空空如也

空空如也

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

TA关注的人

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