自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 零基础入门Java之认识String类

本文详细介绍了Java中String类的特性与常用方法,包括字符串创建、比较、查找、转换、替换、拆分、截取等操作。重点分析了String的不可变性原理及其优缺点,并对比了String、StringBuffer和StringBuilder三者的区别:String不可变,线程安全;StringBuffer可变且线程安全;StringBuilder可变但非线程安全。文章通过大量代码示例演示了各类字符串操作方法,并指出在频繁修改字符串时应优先使用StringBuffer或StringBuilder以提高性能。

2025-12-24 15:32:40 999

原创 零基础入门Java之设计图书管理系统

本文介绍了如何使用Java实现一个简单的图书管理系统。系统包含Book类存储图书信息(书名、作者等),BookList类管理图书数组,以及区分管理员和普通用户的User类体系。通过接口IOperation定义操作规范,实现了图书查找、借阅、归还、新增、删除等功能。系统采用面向对象设计,通过继承和多态实现不同用户菜单的差异化展示。文章详细展示了各类代码实现,包括图书状态管理、用户操作交互等核心功能,最终完成了一个具备基本功能的图书管理系统原型。

2025-12-20 20:59:37 906

原创 备战蓝桥杯day4

本文主要记录笔者备战蓝桥杯的过程,包括一道基础题和一道进阶题。

2025-12-04 17:16:51 553

原创 蓝桥杯备战day3

本文记录了蓝桥杯备战的第三天学习内容,包括一道基础题和一道进阶题的解题过程。基础题"乘法表"通过建立字符映射和双重循环实现了p进制乘法表的生成。进阶题"奇偶覆盖"则运用了扫描线算法和线段树技术,通过离散化处理和区间维护计算了奇数覆盖和偶数覆盖的面积。两题分别展示了基础编程能力和高级算法应用,体现了从简单到复杂的编程思维训练过程。

2025-12-03 19:17:08 404

原创 蓝桥杯备战day2

本文记录了蓝桥杯备赛过程,包含两道编程题解析。基础题"拼接平方数"通过遍历区间数字,验证其是否为平方数并能拆分为两个平方数之和。进阶题"排列数"采用动态规划方法,使用二维数组存储状态,通过三种转移路径计算特定规模的合法排列数,并对结果取模。文章展示了算法实现思路和关键代码片段,体现了从基础到进阶的解题过程。

2025-12-02 21:26:40 1704 1

原创 蓝桥杯备战day1

本文记录了备战蓝桥杯第一天的刷题过程,包含两道题目,基础题"求和"和进阶题"回文日期"。对于求和问题,作者从暴力双重循环(O(n²))优化到数学公式法(O(n)),通过元素总和的平方减去元素平方和再除以2的方式提高效率。回文日期问题则通过年份反转构造回文日期,并设计ABABBABA格式的特殊回文日期检测,使用辅助函数验证日期合法性。两题均给出完整代码实现,展示了算法优化思路和日期处理技巧。

2025-12-02 01:49:03 825

原创 2025年12月1日力扣刷题小记

本文记录了2025年12月1日在力扣平台刷题的五个算法题解:数组题"下一个排列",通过查找交换点和反转实现;链表题"螺旋矩阵IV",按螺旋顺序填充链表值;字符串题"Z字形变换",两种实现方式;栈题"商品折扣价",利用栈结构计算最终价格;队列题"招式拆解II",使用哈希表统计字符频率。每道题都包含详细思路说明和完整代码实现,涵盖了数组处理、链表遍历、字符串变换、栈应用和哈希表使用等常见算法技巧。

2025-12-01 21:02:01 574

原创 零基础入门Java之抽象类和接口

本文系统介绍了Java中抽象类和接口的核心概念与应用。抽象类通过abstract修饰,包含抽象方法(无实现)和普通方法/属性,不能实例化,必须被子类继承并实现抽象方法。接口定义公共规范标准,所有方法默认为public abstract,支持多继承,可通过implements实现。文章详细对比了两者特性,并通过图形绘制、USB设备等实例演示实际应用。同时介绍了Object类的重要方法(toString、equals、hashCode)、内部类(静态/实例/局部/匿名)及常用接口(Comparable、Clon

2025-12-01 14:42:03 6659 3

原创 2025年11月27日力扣刷题小记

本文记录了2025年11月27日在力扣平台刷题的详细过程,包含五种数据结构题型的解法。主要内容包括,搜索二维矩阵的两种解法(逐行筛选和二分查找);双链表转数组的实现;重复叠加字符串匹配的KMP算法优化;利用单调栈解决下一个更大元素问题;用双栈模拟队列操作。每种解法都分析了时间复杂度,并提供了完整代码实现,涵盖了从暴力解法到优化算法的完整思考过程。

2025-11-27 16:29:25 840

原创 零基础入门Java之多态

本文详细介绍了Java中的多态特性及其实现方式。多态是指同一行为在不同对象上产生不同结果,主要通过继承体系、方法重写和父类引用调用实现。文章重点讲解了方法重写的规则与注意事项,区分了重写与重载的差异,并通过代码示例演示了向上转型和向下转型的应用场景及安全性问题。同时分析了多态的优势(降低代码复杂度、提高可扩展性)和局限性(运行效率降低、属性无多态性等),特别强调了在构造函数中使用实例方法可能引发的问题。最后总结了使用多态时的最佳实践,帮助开发者更好地理解和运用这一面向对象编程的核心特性。

2025-11-27 13:20:13 6129

原创 2025年11月26日力扣刷题小记

本文记录了2025年11月26日在力扣平台刷题的五个算法题目及解题思路:,颜色分类(数组)通过计数排序或双指针法实现原地排序; 删除链表和为0的连续节点(链表)使用虚拟头节点和双重循环检测子链表; 反转字符串元音字母(字符串)双指针法定位并交换元音字符; 每日温度(栈)单调栈记录温度索引,计算更高温度间隔天数; 无法吃午餐的学生(队列)统计学生喜好与三明治类型的匹配情况。 每道题均包含题目链接、详细思路分析和优化解法代码,涵盖多种数据结构与算法技巧。

2025-11-26 19:46:23 951

原创 零基础入门Java之继承和组合

本文详细讲解了Java中继承与组合的核心概念及应用。继承通过extends关键字实现代码复用,子类可访问父类成员(同名时优先访问子类),使用super可显式调用父类成员。构造方法遵循"先父后子"原则,子类构造默认调用super()。初始化顺序为:父类静态→子类静态→父类实例→父类构造→子类实例→子类构造。final关键字可限制继承。组合通过将类实例作为字段实现has-a关系,相比继承更推荐使用组合。文章通过动物类继承案例和汽车组合案例,对比了两种代码复用方式的适用场景。

2025-11-25 21:24:26 1144 6

原创 2025年11月25日力扣刷题小记

本文记录了2025年11月25日力扣刷题过程,包含数组、链表、字符串、栈、队列五类算法题。重点分析了"生命游戏"(数组)的两种解法,包括使用临时数组和原地标记法;"训练计划"(链表)通过双指针优化查找效率;"重复子字符串"(字符串)展示了暴力枚举和KMP算法;"整理字符串"(栈)实现字符匹配处理;"用队列实现栈"通过双队列模拟栈操作。各题均提供详细思路、复杂度分析和代码实现,涵盖常见算法技巧与优化方法。

2025-11-25 18:49:22 1051 5

原创 2025年11月24日力扣刷题小记

本文记录了2025年11月24日力扣刷题的五道算法题解:1. 螺旋矩阵(数组):通过边界收缩策略填充n×n矩阵;2. 链表频率(链表):使用哈希表统计节点值出现频率;3. Excel表列名称(字符串):实现26进制转换并处理特殊边界;4. 比较含退格的字符串(栈):双指针法优化空间复杂度至O(1);5. 字符串中的第一个唯一字符(队列):结合哈希表快速查找。每道题均提供多种解题思路和完整代码实现。

2025-11-24 21:41:10 839 2

原创 零基础入门C语言之C语言实现二叉树1

本文系统介绍了二叉树数据结构及其实现方法。首先阐述了树的基本概念和术语,包括节点度、层次、高度等核心定义。重点讲解了二叉树的两种特殊形式:满二叉树和完全二叉树,并比较了顺序存储和链式存储的优缺点。文章详细演示了堆的实现过程,包括初始化、销毁、插入和删除等关键操作,通过向上调整和向下调整算法维护堆的有序性。最后提供了完整的测试代码,验证了小堆的正确构建和有序弹出功能。全文采用C语言实现,为理解二叉树和堆结构提供了实用参考。

2025-11-24 18:25:53 972 2

原创 零基础入门Java之类与对象2

本文详细介绍了Java面向对象编程中的封装特性和相关概念。首先阐述了封装的核心思想:通过访问权限控制隐藏对象内部细节,仅对外提供必要接口。文章讲解了四种访问修饰符(public、protected、default、private)的使用场景,并通过学生类示例演示了如何通过getter/setter方法访问private成员变量。其次,介绍了包的概念和作用,包括组织类、解决命名冲突等,详细说明了import语句的使用方法和注意事项。然后重点讲解了static关键字,包括静态成员变量和静态方法的特点、使用场景及

2025-11-24 14:56:44 1292 3

原创 2025年11月22日力扣刷题小记

本文记录了2025年11月22日的力扣刷题过程,涵盖了数组、链表、字符串、栈和队列五种数据结构的算法题解。主要内容包括:螺旋矩阵的边界收缩遍历法;链表反转的数组交换法;字符串相加的竖式模拟法;栈结构删除最外层括号的深度判断法;循环队列的数组和链表两种实现方式,重点分析了数组实现的取模运算和链表实现的节点操作。每种解法都详细说明了核心思路、边界条件处理和具体实现代码,展示了不同数据结构的典型应用场景和解题技巧。

2025-11-22 21:10:55 945 1

原创 零基础入门Java之类和对象1

本文系统介绍了Java中类和对象的核心概念。首先对比了面向对象与面向过程的编程思想,强调面向对象通过对象交互解决问题更符合现实认知。然后详细讲解了类的定义语法、成员变量和方法,并通过洗衣机、宠物狗等实例进行演示。重点阐述了类的实例化过程,使用new关键字创建对象,以及this引用的作用和特性。最后深入解析了构造方法的概念,包括默认构造方法、方法重载、this调用构造方法等核心机制,并揭示了对象初始化的底层原理。文章通过丰富示例帮助读者全面理解Java面向对象编程的基础知识体系。

2025-11-22 15:44:39 1256 3

原创 零基础入门C语言之C语言实现队列

本文详细介绍了C语言中队列数据结构的实现与应用。首先阐述了队列的基本概念(先进先出特性)及其两种实现形式(顺序队和链队),重点说明了链式队列的优势。接着详细讲解了队列的核心操作实现,包括初始化、入队、出队、获取队头/队尾元素、判断空状态和销毁队列等函数的具体实现逻辑。最后通过LeetCode第225题"用队列实现栈"的实战案例,展示了如何利用两个队列模拟栈的后进先出特性,并提供了完整的代码实现。文章不仅涵盖了队列的理论知识,还通过具体代码示例展示了队列的实际应用场景。

2025-11-21 23:40:58 682

原创 2025年11月21日力扣刷题小记

本文记录了2025年11月21日的刷题笔记,包含四种算法类型的题目解析。数组部分探讨了矩阵置零问题的三种解法,从O(mn)到O(1)的空间复杂度优化;链表部分通过反转链表实现两数相加;字符串相乘采用数组存储大数避免溢出;栈算法则用数组模拟栈结构删除相邻重复项。每道题都提供了详细的解题思路和代码实现,展示了从基础到优化的完整思考过程。

2025-11-21 18:52:04 839

原创 零基础入门Java之数组

本文详细介绍了Java中数组的相关知识,包括数组的定义与初始化,包括动态初始化和静态初始化两种方式,以及数组元素的访问与遍历方法;数组作为引用类型,解释了JVM内存分布和数组在内存中的存储方式;数组的应用场景,包括作为函数参数和返回值的使用;数组常见操作,实现toString、求平均值、查找(顺序查找和二分查找)、排序(冒泡排序)等方法;数组拷贝,介绍了深浅拷贝问题;二维数组,介绍了定义和使用方法。文章通过大量代码示例和内存图解,帮助读者深入理解Java数组的工作原理和使用技巧。

2025-11-21 13:58:03 1359

原创 零基础入门C语言之C语言实现数据结构之栈

本文详细介绍了C语言实现栈的相关知识,包括栈的基本概念(后进先出原则)以及两种实现方式(静态栈和动态栈)。重点讲解了动态栈的实现方法,涵盖初始化、销毁、入栈、出栈、获取栈顶元素、判空和获取元素个数等核心操作。文章还通过有效的括号匹配问题展示了栈的实际应用,给出基于栈的解决方案和代码实现。所有操作都通过assert进行指针有效性检查,确保程序健壮性。

2025-11-20 23:20:50 884 3

原创 2025年11月20日力扣刷题小记

本文记录了2025年11月20日刷的三道力扣题目。第一题"旋转图像"通过两次优化,从使用辅助矩阵的O(n²)空间解法改进为O(1)空间的分层四元素交换法。第二题"删除链表中间节点"采用快慢指针定位中点并删除。第三题"验证回文串"使用双指针法跳过非字母数字字符后比较。三题分别涉及矩阵变换、链表操作和字符串处理,展示了不同的算法思路和优化方法。

2025-11-20 17:38:38 979

原创 零基础入门Java之方法的使用

本文介绍了Java中方法的使用,主要包括三个部分:方法的基本概念与定义,包括方法的作用、语法格式和调用过程;方法重载的概念与应用,说明如何通过参数列表不同来区分同名方法;递归的基本原理及其实现方式,强调递归必须包含终止条件和递推公式。文章通过具体代码示例展示了方法在模块化编程中的实际应用,包括闰年判断、数字求和、阶乘计算等案例,说明了方法如何提高代码复用性和可读性。最后还解释了形参与实参的关系,以及基础数据类型的传值调用特性。

2025-11-20 15:01:48 864

原创 零基础入门Java之逻辑控制

本文介绍了Java中的逻辑控制结构,包括顺序结构、分支结构和循环结构。详细讲解了if语句和switch语句的语法与应用示例,以及while、for循环的使用方法。同时介绍了break和continue关键字的作用,以及如何进行输入输出操作。文章通过多个代码示例演示了如何判断数字奇偶性、判断闰年、计算阶乘和等常见编程问题的解决方法,并提供了一个简单的猜数字游戏实现案例。

2025-11-20 13:48:41 737

原创 零基础入门C语言之链表OJ专题

本文介绍了5道链表相关算法题的解法:返回链表倒数第k个节点的两种方法(两次遍历法和快慢指针法);判断链表回文结构的实现思路(反转后半部分比对);寻找两个链表相交节点的长度差法;检测环形链表的快慢指针法及其数学证明;复制带随机指针链表的插拆法。文章提供了详细的算法思路、代码实现和必要的数学证明,帮助读者掌握链表问题的常见解决技巧。所有题目均给出力扣/牛客的测试链接供练习。

2025-11-19 23:32:11 856

原创 零基础入门Java之运算符

本文介绍了Java运算符的基本分类和使用方法,包括算术运算符、关系运算符、逻辑运算符、位运算符、移位运算符和条件运算符。详细说明了每种运算符的语法规则、运算原理和使用注意事项,如除法操作数不能为0、自增自减运算符的特性、短路求值规则、位运算的二进制操作以及移位运算的数学意义等。文章通过示例代码演示了各种运算符的具体应用场景,并强调了在复杂表达式中使用括号明确运算优先级的重要性。这些运算符是Java编程的基础工具,熟练掌握它们对编写高效、正确的代码至关重要。

2025-11-19 18:09:33 1144

原创 2025年11月19日力扣刷题小记

本文记录了2025年11月19日的三道算法题解:有效的数独:通过计数数组分步校验行、列和3×3子格的有效性,优化解法使用标记数组一次遍历完成验证;回文链表:将链表转为数组进行回文判断,进阶解法通过反转后半链表实现O(1)空间复杂度;罗马数字转整数:基于字符规则分支处理特殊组合,优化解法利用ASCII映射和正负判断实现高效转换。三种解法分别展示了不同数据结构的处理技巧和优化思路。

2025-11-19 15:37:49 796

原创 零基础入门Java之数据类型

本文系统介绍了Java中的数据类型,包括基本数据类型和引用数据类型。重点讲解了8种基本数据类型:整型(byte、short、int、long)、浮点型(float、double)、字符型(char)和布尔型(boolean),详细说明了它们的内存占用、取值范围和使用注意事项。同时探讨了类型转换机制,包括自动类型转换和强制类型转换,分析了不同类型变量运算时的类型提升规则。此外还介绍了字符串类型的基本用法和与数字类型的相互转换。本文为Java初学者提供了全面的数据类型知识框架,有助于理解变量声明、赋值和运算中的

2025-11-18 20:28:18 999

原创 2025年11月18日力扣刷题小记

本文记录了2025年11月18日的力扣刷题过程,包括三个算法题目:三数之和(数组)、反转链表(链表)和二进制求和(字符串)。三数之和采用排序+双指针解法处理重复问题;反转链表使用三指针法和头插法两种实现;二进制求和通过逐位相加模拟手工计算。文中提供了详细思路和完整代码实现,涵盖数组排序、链表操作和字符串处理等典型算法技巧。

2025-11-18 17:35:22 593

原创 2025年11月17日力扣刷题小记

本文记录了2025年11月17日的力扣刷题情况,包含三道典型算法题。数组题"最接近的三数之和"通过排序+双指针优化,将时间复杂度从O(n^3)降至O(n^2);链表题"相交链表"采用双指针拼接遍历法,在2次遍历内解决问题;字符串题"最后一个单词的长度"通过倒序遍历高效求解。每道题都分析了初始思路和优化方案,展示了算法优化过程。本次刷题涵盖数组、链表、字符串三大基础数据结构,体现了不同数据结构的典型解题方法。

2025-11-17 23:49:42 1094

原创 零基础入门C语言之复杂度讲解

本文系统介绍了算法复杂度分析中的时间复杂度和空间复杂度概念。时间复杂度主要衡量算法运行效率,使用大O渐进表示法分析关键操作的执行次数,常见复杂度有O(1)、O(N)、O(N^2)、O(logN)等。空间复杂度评估算法运行时的额外内存消耗。通过多个典型算法案例(如冒泡排序、二分查找、递归等)展示了复杂度分析方法,并针对力扣OJ题目提供了优化思路。文章指出现代计算机发展使空间复杂度重要性降低,更多关注时间复杂度优化。最后总结了常见算法复杂度类型,为算法性能评估提供系统指导。

2025-11-17 16:17:01 917

原创 零基础入门Java之初识Java

本文介绍了Java语言的基本知识和入门方法。首先概述了Java的跨平台特性、广泛应用领域(企业系统、Web开发、Android、大数据等)及其发展历史。文章详细讲解了Java的11个核心特性,包括面向对象、健壮性、安全性等,并说明了JDK、JRE和JVM的关系。通过一个简单的"Hello World"示例,演示了Java程序的编译运行过程,介绍了基本的代码结构和注释规范。最后强调了标识符命名规则和关键字的重要性,为Java初学者提供了清晰的入门指南。文章建议在掌握C语言基础后学习Java

2025-11-17 13:17:39 1264

原创 零基础入门C语言之贪吃蛇的实现

本文详细介绍了如何用C语言实现经典的贪吃蛇游戏。主要内容包括:使用Win32 API进行控制台窗口设置;通过链表结构实现蛇身的动态增长;处理键盘输入控制蛇移动方向;实现食物生成与碰撞检测逻辑;游戏状态管理及计分系统。文章完整呈现了从初始化到游戏运行再到结束的完整开发流程,涵盖窗口控制、输入处理、动态内存管理等关键技术点。该实现可作为学习C语言和游戏开发的实践案例。

2025-11-14 21:43:10 1442

原创 零基础入门C语言之C语言实现数据结构之双向链表

本文介绍了C语言中双向链表的实现方法,重点讲解了带头双向循环链表的结构特点和使用哨兵位节点的必要性。文章详细阐述了双向链表的初始化、插入(头插、尾插、指定位置插入)、删除(头删、尾删、指定位置删除)、查找以及销毁等操作的实现原理,并提供了完整的代码示例。通过调试测试验证了各函数的正确性,展示了双向链表相比单链表的操作优势,特别是在避免循环和减少时间复杂度方面的改进。

2025-11-12 22:50:42 481

原创 零基础入门C语言之C语言实现数据结构之单链表经典算法

本文介绍了6道经典单链表算法题目以及多种解决方法。

2025-11-12 11:53:27 1484

原创 零基础入门C语言之C语言语法检测题

本文是一份C语言语法检测试题集,包含20道选择题和4道编程题。选择题覆盖了指针操作、数组处理、ASCII码比较、内存管理、预处理指令、结构体内存对齐等核心知识点,通过详细解析帮助读者理解编程中的常见陷阱和注意事项。编程题部分提供了字符串反转、查找唯一字符、数组合并等经典问题的多种解法,包含暴力法、双指针法、位运算等优化思路。所有题目均附有完整代码实现和逻辑图解,强调了对指针操作、内存管理、算法效率等关键概念的掌握。通过这套试题,读者可以全面检测和巩固C语言基础语法和编程能力。

2025-11-11 09:37:08 1236

原创 零基础入门C语言之C语言实现数据结构之单链表

本文详细介绍了单链表的数据结构及其实现方法。主要内容包括:链表概念及结构特点,通过火车车厢类比解释链表的节点组成和指针连接方式;单链表的实现,包含节点定义、遍历打印、头插尾插、头删尾删等基本操作;链表高级操作如查找特定节点、指定位置插入删除等;链表分类概述,指出实际应用中最常用的是无头单向非循环链表和带头双向循环链表。文章通过代码示例详细讲解了各种操作的实现方法,并强调链表相比顺序表在动态内存管理方面的优势。

2025-11-10 18:22:33 1265

原创 零基础入门C语言之C语言实现数据结构之顺序表经典算法

本文通过两道力扣算法题介绍了顺序表的经典处理技巧。第一题"移除元素"采用双指针法直接在原数组操作,第二题"合并有序数组"通过逆向双指针实现高效合并。文章还分析了顺序表在插入删除、空间扩容等方面存在的性能问题,并指出链表结构将是解决这些问题的方向。这两道题目展示了顺序表的基本操作思路,为后续学习更复杂的数据结构奠定了基础。

2025-11-10 16:30:28 866

原创 零基础入门C语言之C语言实现数据结构之顺序表应用

本文基于顺序表知识实现了一个通讯录系统,能够存储至少100个联系人的基本信息(姓名、性别、年龄、电话、地址)。系统提供了完整的增删查改功能,并通过文件读写实现数据持久化。主要实现包括:定义联系人数据结构;封装顺序表操作作为通讯录基础功能;实现加载、保存功能确保数据不丢失;提供交互式菜单界面。代码展示了静态/动态顺序表两种实现思路,通过模块化设计将通讯录功能与底层数据结构分离。系统结束时自动保存数据,再次启动时可恢复历史记录。

2025-11-08 17:24:47 364

空空如也

空空如也

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

TA关注的人

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