- 博客(56)
- 收藏
- 关注
原创 MySQL 环境搭建(MySQL下载、卸载、安装、配置 | Navicat)
详细介绍了MySQL的完整卸载流程与安装,还有图形化界面的安装,以及安装过程中的常见问题与解决方案
2026-05-12 21:48:22
330
原创 MySQL 数据库概述
本文介绍了数据库的基本概念及其重要性,重点阐述了数据库管理系统(DBMS)与数据库的关系,并列举了主流DBMS产品及其特点。文章详细分析了MySQL的发展历程、核心优势(开源免费、跨平台、多语言支持等)及其在互联网发展中的关键作用,包括被Sun和Oracle收购等重要事件。通过对比不同数据库产品的特性,突出了MySQL作为开源关系型数据库的广泛应用价值。
2026-05-10 20:10:17
347
原创 Java 常见API 字符串String、集合ArrayList
本文介绍了Java中API和String类、ArrayList类的核心概念。API是Java提供的可直接使用的功能类,如Scanner和Random,通过API帮助文档可快速查询使用方法。String类具有不可变性,创建方式包括直接赋值和new关键字构造,两者在内存处理上有差异。String常用方法包括equals()比较字符串内容(区分大小写)和equalsIgnoreCase()(忽略大小写),以及字符串遍历等操作。文章通过登录验证等示例代码,展示了String类的实际应用场景。
2026-05-08 18:58:01
363
原创 Java 面向对象高级 内部类
本文介绍了Java中的内部类概念及其分类。详细讲解了四种内部类:成员内部类(可访问外部类成员)、静态内部类(仅访问外部类静态内容)、局部内部类(定义在方法内)和匿名内部类(无需显式定义类名)。重点说明了成员内部类的创建方式、访问外部类变量的方法,以及匿名内部类在简化代码结构中的作用。通过汽车与发动机的案例,展示了内部类如何更合理地组织关联属性。
2026-05-07 14:23:06
375
原创 Java 面向对象高级 抽象类和抽象方法
摘要:本文介绍了Java中抽象类和抽象方法的概念及使用。抽象类用abstract修饰,包含抽象方法的类必须是抽象类。抽象方法只有声明没有实现,子类必须重写。文章通过Animal抽象类和Cat、Dog子类的示例展示了定义方式,并总结了关键注意事项:抽象类不能实例化、可以有构造方法、子类必须实现所有抽象方法等。最后指出抽象类的意义在于规范开发,强制子类按格式重写方法。
2026-05-05 21:40:14
169
原创 Java 面向对象的底层原理
本文介绍了Java面向对象编程中的内存管理机制。主要内容包括:1) Java内存结构分为栈内存(方法调用)、堆内存(对象存储)、方法区(字节码信息)等区域;2) 对象创建时的七步内存分配过程,从加载类到初始化属性;3) 对象传递的内存原理,实际传递的是对象地址;4) this关键字的本质是代表方法调用者的内存地址。文章通过图示详细说明了对象在内存中的存储和传递方式,帮助理解Java面向对象程序在内存中的运行机制。
2026-04-16 18:58:22
256
原创 Java 面向对象基础
本文介绍了Java面向对象编程的核心概念,包括类和对象、封装性、构造方法等。主要内容有:1) 类和对象的定义与使用,类由属性和行为组成;2) 封装原则,通过private关键字保护数据安全,使用set/get方法访问成员变量;3) this关键字的作用;4) 构造方法的特点和使用注意事项。文章还提供了完整的JavaBean类模板,包含私有变量、构造方法和成员方法的典型实现,并给出了具体示例说明如何创建和使用对象。这些基础知识是掌握Java面向对象编程的重要前提。
2026-04-16 18:10:18
305
原创 Java 基础算法训练
大乐透选号规则明确规定:同一投注区内的号码不可重复,但不同投注区之间允许号码重复。具体规则可分为前区和后区两个维度:大乐透选号重复规则详解1.前区号码不可重复。投注范围:从01-35中选择5个号码。规则要求:所选5个号码之间不可出现重复数字,如出现重复则该注视为无效投注。2.后区号码不可重复。投注范围:从01-12中选择2个号码。规则要求:所选2个号码之间不可重复,否则同样视为无效投注。跨区重复规则。前区与后区号码允许交叉重复,例如前区选10,后区也可选10。
2026-04-15 20:46:15
402
原创 Java 运行原理
本文介绍了Java的运行机制和内存管理。Java通过虚拟机(JVM)实现跨平台运行,编译生成.class文件后由JVM执行。内存分为栈、堆、方法区等五个模块:栈存储方法调用,堆存储对象和数组,方法区存储字节码信息。基本数据类型直接存储值,引用类型存储地址值。以数组为例,展示了方法调用时内存的变化过程,说明引用类型传递的是地址值而非数据本身。理解内存分配机制对掌握数组和面向对象编程至关重要。
2026-04-13 18:08:35
494
原创 蓝桥杯赛前刷题
B-小紫的劣势博弈_牛客周赛 Round 85sort中普通数组用 从大到小 : 加1.1.2 小梦的AB交换问题与解决方法多思考注意细节,要考虑到所有情况多用几个不同的样例测试思路:两个一组,分为n组每组只有四种情况每种情况有几个, 记下 一定等于 数(因为与个数相同)与交换一次即可达到目标 与 只有一个时, 不用交换,有多个时,交换" 与 的个数最少的个数" 即可代码:1.1.3 小苯的Z串匹配C-小苯的Z串匹配_牛客周赛 Round 871.2
2026-04-12 17:31:44
500
原创 算竞常用STL cpp
C++标准模板库(STL)是一个包含常用数据结构与算法模板的C++软件库,主要由算法、容器、仿函数和迭代器四个组件构成。STL能简化代码和调试,但效率较低。常用容器包括顺序容器(vector)、关联容器(set/map)、容器适配器(stack/queue/priority_queue)等。vector类似可变长度数组,提供push_back、pop_back等方法;stack和queue分别实现先进后出和先进先出结构;priority_queue基于二叉堆实现;set提供元素去重和有序存储;map实现键值
2026-03-30 22:27:04
440
原创 搜索算法 cpp
本文介绍了搜索算法的基本概念与实现方法。搜索是通过穷举所有可能情况来寻找最优解或统计合法解数量的方法,主要包括深度优先搜索(DFS)和宽度优先搜索(BFS)。文章重点讲解了DFS的实现,包括递归枚举、回溯剪枝等技术,并通过三个典型例题(枚举子集、组合型枚举和选数问题)展示了DFS的具体应用。其中强调了剪枝优化的重要性,介绍了等效冗余排除、可行性剪枝、最优性剪枝和搜索顺序优化等常见剪枝策略。这些方法能有效减少搜索空间,提高算法效率。文章通过代码示例和决策树图示,直观展现了搜索算法的实现过程和优化思路。
2026-03-29 19:07:42
360
原创 分治算法 cpp
分治算法通过"分而治之"策略将复杂问题分解为可求解的子问题,再合并结果。典型应用包括归并排序和快速排序。以逆序对问题为例,暴力解法O(n²)效率低,而分治解法利用归并排序过程,在合并有序子数组时统计逆序对数量:当左元素>右元素时,左半剩余元素均构成逆序对。该算法时间复杂度为O(nlogn),适用于大规模数据(如洛谷P1908题中n≤5×10⁵的情况)。核心代码通过递归划分区间,并在合并时累加逆序对数,最后输出总和。
2026-03-26 22:40:52
399
原创 递归初阶 cpp
递归基础与汉诺塔问题解析 本文介绍了递归的基本概念和应用方法,并通过汉诺塔问题展示了递归的实际运用。递归的核心思想是"自己调用自己",适用于主问题与子问题处理方式相同的情况。文章强调从宏观角度理解递归,将其视为能完成任务的黑盒,而不必纠结于递归展开细节。通过归并排序示例说明了编写递归函数的三个关键步骤:确定相同子问题、解决单个子问题、设置递归出口。最后以汉诺塔问题为例,展示了如何通过递归实现盘子的移动过程,并提供了完整的C++实现代码。
2026-03-26 21:07:52
332
原创 快速幂 cpp
本文介绍了倍增思想及其在快速幂算法中的应用。通过将指数分解为二进制形式,利用倍增方法将时间复杂度从O(n)优化到O(logn)。文章以洛谷P1226题为例,详细阐述了快速幂的实现原理,包括二进制分解、模运算规律等关键点,并提供了C++代码实现。特别强调了模运算在加减乘除中的不同处理方式,为高效计算大数幂取模问题提供了解决方案。
2026-03-24 12:41:45
156
原创 简单贪心算法 cpp
本文介绍了贪心算法的基本原理和应用实例。贪心算法通过局部最优选择寻求全局最优解,但需要验证策略的正确性。文章以货仓选址和最大子段和两个经典问题为例: 货仓选址问题证明中位数位置能使距离和最小,通过绝对值不等式推导出最优解; 最大子段和问题采用动态累加策略,当和为负时重新开始累加,并通过反证法验证其正确性。 两个案例展示了贪心算法"大胆猜想、严谨验证"的特点,强调在掌握常见策略的同时,要注重数学证明能力的培养。
2026-03-22 21:55:47
733
原创 双指针算法 cpp
本文介绍了双指针算法在解决"唯一的雪花"问题中的应用。该问题要求找出序列中最长连续无重复元素的子数组长度。文章首先分析了暴力枚举法的时间复杂度问题,进而提出使用同向双指针(滑动窗口)的优化方案。通过维护一个哈希表记录窗口内元素出现次数,实现O(n)时间复杂度的高效解法。文中给出了详细的算法步骤说明和两种代码实现(使用unordered_map和数组),并强调遇到新问题时应该先尝试暴力解法再优化的解题思路。这种算法避免了不必要的枚举过程,将时间复杂度从O(n²)优化到O(n)。
2026-03-19 12:34:10
386
原创 差分算法 cpp
差分算法通过预处理优化区间修改操作,将时间复杂度从O(n)降至O(1)。一维差分通过构造差值数组,利用f[L]+=k和f[R+1]-=k实现区间快速加减。海底高铁问题应用差分统计各路段乘车次数,再比较买票和购卡成本求得最小花费。典型空间换时间策略,需注意操作完成后才能还原数组。差分与前缀和互为逆运算,是优化暴力枚举的有效方法。
2026-03-18 21:27:04
366
原创 前缀和算法 cpp
本文介绍了前缀和算法及其应用。前缀和通过预处理数组,用空间换时间优化区间查询,将时间复杂度降至O(1)。文章首先展示了一维前缀和的模板实现,对比暴力解法和前缀和优化解法;然后以洛谷P1115最大子段和为例,详细说明如何利用前缀和求最大连续子序列和。关键思路是维护前缀和数组,并通过减去前缀最小值来获取局部最大值。代码实现中特别强调了数据范围的处理,使用long long类型防止溢出。前缀和是处理区间问题的有效方法,能显著提升算法效率。
2026-03-18 18:47:24
363
原创 二进制枚举算法 cpp
本文介绍了二进制枚举及其应用。二进制枚举利用数的二进制位0/1表示状态,通过位运算实现高效枚举。在子集问题中,通过遍历所有二进制状态(0~2^n-1),检查每一位是否为1来生成子集。文章还讲解了位运算中的左移(<<)和右移(>>)操作:左移相当于乘以2^n,右移相当于除以2^n。该方法也被应用于"费解的开关"问题,通过枚举第一行的操作状态,推导后续操作步骤,判断是否能在6步内点亮所有灯。二进制枚举结合位运算技巧,为状态空间搜索提供了高效解决方案。
2026-03-18 13:47:19
549
原创 普通枚举算法 cpp
本文介绍了枚举算法的基本概念和应用实例。枚举是一种暴力算法,通过列举所有可能情况来解决问题,需要考虑枚举对象、顺序和方式。文中以三个例题展示了枚举的实际应用:1) 铺地毯问题通过逆序枚举地毯判断覆盖情况;2) 回文日期问题通过枚举月日组合反推年份;3) 扫雷游戏利用枚举确定地雷位置。这些案例展示了枚举在不同场景下的优化思路,如逆序枚举、利用特性减少枚举范围等,为解决类似问题提供了参考方法。
2026-03-17 21:33:18
910
原创 关于高校C语言课程的学习方法
摘要:本文为C语言初学者提供实用学习建议。推荐浙江大学翁恺的C语言网课作为入门选择,建议听到指针部分即可。学习方法包括:1)听网课+敲例题;2)根据考试难度选择刷题策略;3)重视学校作业。可使用AI辅助但不要依赖,推荐使用Dev C++编译器。文末附基础程序框架,强调初学者应避免使用高端编译器,以免影响学习效果。
2026-03-16 20:14:21
399
原创 高精度算法 cpp
本文介绍了高精度算法的实现方法,主要解决超大整数运算问题。通过字符串读入数字并逆序存入数组,模拟小学竖式计算过程实现加减乘运算。高精度加法采用逐位相加并处理进位的方式;减法先比较大小,处理借位并消除前导零;乘法则先无进位相乘再统一处理进位。文章提供了洛谷相关题目和完整C++代码实现,包括字符串处理、数组操作和进位处理等关键步骤,适用于处理10^500量级的超大整数运算问题。
2026-03-15 21:27:18
513
1
原创 Java 方法(笔记)
本文概述了Java方法的基本概念和使用要点。方法作为程序的最小执行单元,主要优势在于提高代码复用性和可维护性。文章详细介绍了方法的定义与调用方式,包括无参数方法、带参数方法以及带返回值方法的语法格式和使用注意事项。同时阐述了形参与实参的区别、方法重载的条件(同方法名、不同参数)、基本数据类型与引用数据类型的传递差异,以及方法调用的内存原理(栈内存运行)。最后总结了方法的通用格式和两个关键点:明确返回值类型和参数类型数量。
2026-03-11 20:17:07
508
原创 模拟算法 cpp
本文介绍了两种模拟类编程题的解题思路和代码实现。多项式输出问题要求根据给定系数按特定格式输出多项式,需处理系数符号、指数形式等多种情况。蛇形方阵问题则需按顺时针方向填充数字矩阵,通过方向数组控制填充路径,处理边界条件。两种问题都强调对题目要求的精确模拟和边界条件的细致处理,展示了从问题分析到代码实现的完整解题过程。代码实现均采用C++语言,通过条件判断和循环结构完成相应功能。
2026-03-10 19:12:54
393
原创 Java 数组(笔记)
本文介绍了Java数组的基本概念和使用方法。数组是一种存储同类型数据的容器,定义格式包括数据类型[] 数组名或数据类型 数组名[]。数组初始化分为静态初始化(直接指定元素)和动态初始化(指定长度),并讲解了地址值、索引访问和遍历操作。特别说明了数组越界问题,最后通过一个打乱数组顺序的示例演示了数组操作。文章涵盖了数组的定义、初始化、访问等核心知识点。
2026-03-09 16:54:07
380
原创 Java 循环 高级(笔记)
本文介绍了Java编程中的循环结构、控制语句和随机数生成。详细讲解了for、while、do-while三种无限循环的写法及注意事项,分析了break和continue在循环中的不同作用。同时介绍了Random类的使用方法,包括导包、创建对象和生成指定范围随机数。最后提供了两个实用案例:输出100-200之间的质数,以及通过Random和Scanner实现的猜数字小游戏,展示了这些基础知识的实际应用。
2026-03-09 16:52:47
173
原创 Java 流程控制语句(笔记)
本文介绍了Java中的流程控制语句,主要包括判断语句和循环结构。判断语句部分详细讲解了if语句的三种格式及其执行流程,以及switch语句的用法和注意事项。循环结构部分涵盖了for、while和do...while三种循环的语法格式和执行特点,并比较了它们的使用场景。文章指出除JDK12中switch的新特性外,其他流程控制语句的语法与C/C++一致。这些控制结构是编程中实现条件判断和重复操作的基础工具。
2026-03-08 18:13:25
361
原创 Java 运算符(笔记)
本文系统介绍了Java中的运算符及其使用规则。主要内容包括:1)算术运算符(+、-、*、/、%)的特点及注意事项;2)类型转换(隐式转换和强制转换);3)字符串和字符的+操作区别;4)自增自减、赋值、关系、逻辑运算符的使用;5)短路逻辑运算符的高效特性;6)三元运算符的语法和应用;7)运算符优先级规则。文章通过具体代码示例(如数值拆分、比大小等)演示了运算符的实际应用,并强调小括号优先和避免常见错误(如==与=混淆)。适合Java初学者系统学习运算符知识。
2026-03-06 14:15:36
324
原创 Java基础语法(笔记)
本文介绍了Java编程基础知识点,包括注释(单行//和多行/* */)、关键字(全部小写、高亮标注)、字面量类型(整数、小数、字符等6种)及其书写格式。详细说明了变量定义格式和注意事项,以及8种基本数据类型的取值范围和关键点。同时讲解了标识符的命名规则(硬性要求和软性建议),包括小驼峰和大驼峰命名法。最后介绍了Scanner类的键盘输入方法和IDEA开发环境中的项目层级结构(project→module→package→class)。这些内容为Java初学者提供了必要的基础知识框架。
2026-03-05 17:29:09
303
原创 Markdown 数学公式(LaTeX 语法)
本文总结了LaTeX数学公式的基本语法和排版规范,包括命令、参数、上下标等基础元素,以及行内公式、块级公式和多行对齐公式的编写方法。提供了常用符号速查表(运算符号、希腊字母等)、矩阵与数组的表示方式,并对比了不同平台对LaTeX公式的支持情况。最后列举了常见错误及修正方案,帮助用户避免排版陷阱。全文以表格和示例代码为主,便于快速查阅和实际应用。
2026-03-05 17:28:19
745
原创 Markdown 分割线
Markdown分割线使用指南:支持---、***、___三种标准语法,需≥3个符号且独占一行。关键注意事项包括前后需空行、列表内需缩进、避免与YAML冲突。推荐用于章节过渡(单文档≤3处),平台渲染存在差异(GitHub实线/Notion不支持)。常见问题包括未生效原因检查及自定义样式限制。专业建议是适度使用以增强文档结构清晰度,避免过度分割破坏连贯性。原生语法简洁且兼容性优于HTML的<hr>标签。
2026-03-04 18:02:20
285
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅