自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2026备战蓝桥杯刷题学习记录7

对于一般问题,就是用公式1无疑,而这种冶炼金属,判断最小/大保底数,因为其特殊性,不能直接沿用公式1,因为他已经假设了马上突破保底的临界情况,相当于不存在整除情况。

2026-04-05 19:46:46 53

原创 2026备战蓝桥杯刷题学习记录6

摘要:本文介绍了模拟算法的特点及应用场景,强调其直接翻译题目逻辑、代码量大、易出错的特点。通过洛谷P1815蠕虫游戏例题,展示了如何用队列数据结构模拟蠕虫移动过程:队列维护虫体坐标,每次移动时更新头尾位置并检查碰撞。作者反思了自己在问题抽象和数据结构运用上的不足,提出后续将通过更多模拟题训练数据结构应用能力。模拟算法适用于过程明确但难以优化的题目,解题关键在于严格按步骤实现,处理好边界条件。

2026-03-18 17:19:55 267

原创 2026备战蓝桥杯刷题学习记录5

本文记录了作者在解决洛谷八皇后问题时的思考过程。最初尝试通过二维数组vis[][]标记皇后位置并检查行列和对角线冲突,但代码运行失败。后来借鉴题解思路,发现可以利用对角线的数学特性:左上到右下对角线行-列为常数,右上到左下对角线行+列为常数。通过将常数作为键值映射到vis数组(需扩展维度处理负数情况),将空间复杂度从O(N²)优化到O(N)。最终实现的DFS解法使用三维vis数组分别标记列和两种对角线,大幅简化了冲突检测逻辑。这一优化思路可推广到类似需要处理对角线约束的问题中。

2026-03-15 17:56:06 361

原创 2026备战蓝桥杯刷题学习记录4

本文介绍了DFS(深度优先搜索)的基本概念和应用。DFS是一种递归遍历所有可能状态的算法,核心包括递归结束条件、状态合法性判断、访问标记和回溯操作。通过三个经典例题展示了DFS的不同应用场景:1)P1464题展示记忆化搜索优化递归;2)P2036题体现二叉选择式DFS;3)P1101题演示连通块染色搜索。文章强调DFS需要系统训练才能掌握其暴力枚举中的条理性,并提供了每题的解题思路和完整代码实现。

2026-03-12 23:11:17 648 6

原创 2026备战蓝桥杯刷题学习记录3

本题是经典的一维前缀和,并不难想到,但为了铺垫之后的矩阵二维前缀和,这里对一维前缀和做个简单讲解后,直接给出该题的参考代码我们定义一个数列 {an​} 的前缀和为 Sn​=i=1∑n​ai​=a1​+a2​+⋯+an​。有了前缀和之后,我们可以使用差分来进行静态的区间求和。具体而言,对于一个区间 [l,r],区间的和 al​+al+1​+⋯+ar​=Sr​−Sl−1​。

2026-03-08 12:10:01 644 2

原创 2026备战蓝桥杯刷题学习记录2

map是一种描述“对应关系”的存储结构,就像函数一样如果你没学函数,你也可以把map理解成下标是任何类型的数组//定义map这就是定义了一个string到int对应的map,也就是说,它的“自变量”为string类型,“函数值”为int类型对于每一个string,就有一个int类型的值与之对应然后就可以往map里面塞东西了,注意它的“下标”是一个string//赋值//调用,此时输出1此时的"自变量x"="wyxniubi","函数值y"=1。

2026-03-06 13:19:17 743

原创 2026备战蓝桥杯刷题学习记录1

罗列出每个A值所对应的B值后,我们将这些B值作为一个新的数列,对比原数列,找到存在于原数列中的B值,而这个时候我们先前统计的值就有用了,找到对应的键值,键代表B值,而值就代表该B值在该数列出现的次数,(ps,因为这个B值既存在于原数列,又存在于新数列,所以原数列肯定有该B值对应的A值,这个不用担心)这一题将A-B=C转换成A-C=B,首先将A数组每个元素出现的次数统计起来,再用map(键值映射)映射,最后将A数组每次减一个C,再将A数组扫一遍,将所有映射次数和叠加起来就是答案。

2026-03-05 00:17:14 255

原创 哈希表的核心原理——个人学习记录

本文系统讲解了哈希表的核心原理,首先澄清了哈希表与Map接口的区别,指出不同实现(如HashMap、TreeMap)在时间复杂度上的差异。重点解析了哈希表的关键概念:通过哈希函数将任意类型key转换为数组索引,使用数组实现O(1)操作;讨论了哈希冲突的必然性及解决方法(拉链法和线性探查法);阐述了负载因子的作用及扩容机制;解释了哈希表遍历无序的原因。最后强调必须使用不可变类型作为key,并总结了哈希表保持O(1)复杂度的条件。全文从底层实现角度深入剖析了哈希表的工作原理和设计考量。

2026-03-04 09:21:44 518

原创 java面向对象——多态-个人学习记录

本文探讨了面向对象编程中多态的应用。通过动物喂食案例,展示了如何利用父类(Animals)作为参数实现多态,使主人类(Master)的feed()方法能统一处理不同子类(Dog、Cat等)的eat()方法。文章还介绍了父类与子类之间的转型(向上/向下转型)、instanceof关键字的使用,以及通过父类数组存储子类对象实现统一调用的方法。最后以"吹糖人"案例说明父类作为返回值的多态应用,强调抽象类虽不能直接实例化,但可通过多态实现灵活的对象创建。多态的核心价值在于实现统一调用

2025-12-19 13:00:35 882

原创 java面向对象——类的继承-个人学习记录

结合以上要点,我们可以有些顿悟,当我们只知道一个大类有哪些需要的方法,但是每个不同的子类所需要的具体实现方法都是不同的,那这个大类就想了,反正我最终所给出的方法都会被覆盖,那倒不如从一开始就“摆烂”,就创建个方法名,剩下的就不管了,等到子类在具体实现去吧!对于汽车类和公交车类这两个不同的类,它们也有些相同的特征,如:都有4个轮子(属性)、都有刹车功能(方法)、都有鸣笛的功能(方法),对于这些公共属性呢,我们可以将其放到一个父类当中,使得汽车类可以。如上图所示,印证了final的类不能继续有子类。

2025-12-19 00:10:33 941

原创 java面向对象——抽象和封装-个人学习记录

本文摘要:本章系统介绍了Java面向对象编程的核心概念,包括类的提炼过程、类图绘制、构造方法设计、static关键字用法、封装原理、this关键字、包导入机制和访问控制权限。重点讲解了如何通过三步提炼法从现实对象抽象出类结构,使用类图直观表示类成员,构造方法重载实现对象初始化,static修饰符创建类成员,以及通过封装隐藏类内部细节。同时详细说明了访问控制修饰符(private/默认/protected/public)的作用范围差异,为Java面向对象编程提供了全面的理论基础和实践指导。

2025-12-17 17:37:49 907

原创 个人学习记录——双指针(1)——链表篇

双指针是一种常用的算法技巧,通过使用两个指针遍历数据结构来解决问题。主要分为两种类型:快慢指针(同向移动)和相撞指针(反向移动)。在链表问题中,双指针常用于合并有序链表、分解链表、查找倒数第N个节点、寻找中点以及判断环等场景。使用技巧包括:虚拟头节点简化边界处理、及时断开原链表连接避免成环、快慢指针定位特殊节点位置等。典型应用包括合并两个有序链表(拉拉链)、分解链表(解拉链)、查找倒数节点和中点、检测环并定位环起点等。这些技巧能有效提高链表问题的解决效率。

2025-12-17 13:41:41 1113

空空如也

空空如也

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

TA关注的人

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