- 博客(15)
- 收藏
- 关注
原创 学生管理系统
本文分享了一个基于Java控制台的学生管理系统开发过程,包含基础版和升级版两个版本。基础版实现了学生信息的增删改查功能,采用面向对象设计,包含学生类和系统操作类。升级版增加了用户注册、登录和密码找回功能,强化了输入验证(用户名、密码、身份证号、手机号格式校验)和安全性设计(验证码机制)。系统采用模块化设计,包含用户类、学生类及对应的功能操作类,通过ArrayList集合管理数据。作者建议读者动手实践代码以加深理解,并强调编程学习需要理论与实践相结合。完整代码展示了Java基础语法、控制流程、集合操作等核心概
2025-10-09 22:05:19
570
原创 ASCII 码表
【摘要】这是一篇为方便查找ASCII码表而写的实用贴。作者以轻松幽默的口吻,分享了自己整理ASCII表资源的初衷,希望能帮助到有同样需求的"兄弟们"。文中穿插了多个颜文字表情包(⸝⸝•̀֊•́⸝⸝、ʕ´•ᴥ•̥`ʔ等),并调皮地向读者求赞求关注,承诺"1赞十道算法题"。全文风格活泼亲切,展现了程序员群体特有的幽默表达方式。
2025-10-06 22:07:25
84
原创 调整字符串的内容并比较
摘要:本文介绍了两种Java方法来判断字符串A能否通过旋转操作变成字符串B。第一种解法使用subString截取拼接实现旋转,第二种解法先将字符串转为字符数组操作后再转回字符串。两种方法都先校验长度是否相等,再通过最多n次旋转比较字符串是否匹配。文章还分享了修改字符串的两个常用套路:subString截取拼接法和字符数组转换法,最后感谢读者支持并附上运行结果示例。
2025-10-06 12:07:56
475
原创 Java字符串练习---罗马数字的两种写法
本文介绍了两种将数字字符串转换为罗马数字的Java实现方法。第一种使用字符串数组映射,通过数组索引直接获取对应罗马数字;第二种采用switch-case语句进行匹配转换。两种方法都包含输入校验:要求字符串长度≤9且全为数字字符,若包含0则转换为空字符串。两种解法运行效果相同,其中数组解法代码更简洁。文章最后附有运行结果说明,并表达了对读者的感谢。
2025-10-06 11:24:28
141
原创 文字版格斗游戏(大佬勿入)
摘要:作者用Java开发了一个文字格斗游戏,包含角色类(Role)和游戏主类(GameTest)。Role类定义了角色属性(姓名、血量、性别、外貌)和行为(攻击、受伤),包含丰富的战斗描述文本。GameTest类实现游戏逻辑,控制角色轮流攻击直至一方血量归零。游戏随机生成攻击招式和伤害值,并根据剩余血量显示不同受伤程度。作者表示代码仍有改进空间,期待读者进一步完善。
2025-10-03 17:27:03
237
原创 【 动态规划 (DP) 】---- 硬币挑选问题 (◔౪◔)
本文介绍了硬币抽选问题的动态规划解法。该问题要求在不相邻的前提下,从一系列硬币叠中选出总价值最高的组合。解决方案采用五步动态规划框架:定义状态数组F[i]表示前i组硬币最大价值;状态转移方程为F[i] = max(F[i-1], F[i-2]+C[i]);初始化F[0]=0, F[1]=C[1];按顺序计算F数组;最终结果存储在F[n]。文章提供了C、Java和Python三种语言的实现代码,并通过示例6,1,2,10,6,2演示了输出结果17(选择5,10,2)。最后祝读者国庆快乐。
2025-09-30 19:28:59
357
原创 最近对问题、凸包问题(蛮力法)VS(分治法)
本文介绍了两种算法解决几何问题:蛮力法和分治法。在最近点对问题中,蛮力法通过双重循环遍历所有点对(O(n²)复杂度),而分治法通过递归分割和合并(O(nlogn)复杂度)显著提高效率。对于凸包问题,蛮力法使用三重循环判断边界线(O(n³)复杂度),分治法则通过排序、递归和切线合并(O(nlogn)复杂度)优化计算。文章详细展示了两种方法的代码实现,并对比了时间复杂度差异,强调分治法在处理大规模数据时的优势。核心思想都是将大问题分解为小问题,递归求解后合并结果。
2025-09-27 20:04:37
842
原创 Karatsuba(关于大数相乘问题)
本文介绍了Karatsuba算法,一种高效的大数乘法方法。通过将大数拆分为高位和低位,利用数学恒等式减少乘法次数:以1234×5678为例,传统方法需4次乘法,而Karatsuba算法只需3次关键乘法(高位积、低位积及和积差),通过递归将复杂度从O(n²)降至O(n^1.585)。尤其在处理大数时(如1024位),递归层数减少使计算量从百万级骤降至数万级,显著提升效率。核心思想是用加减法替代部分乘法,适合高精度运算场景。
2025-09-26 22:20:11
975
原创 分治法 - 随机快速排序(全网最细)
本文介绍了随机快速排序算法及其实现。传统快速排序在有序数组情况下时间复杂度会退化到O(n²)。随机快速排序通过随机选取基准值,使时间复杂度稳定在O(nlogn)。文章详细讲解了算法思想,并提供了Java、C++和Python三种语言的完整实现代码,包括随机数生成、数组划分和递归排序等核心步骤。每种实现都包含示例运行和结果展示,适合学习和面试准备。
2025-09-26 16:56:44
512
原创 最大子段和问题之分治法
本文介绍了使用分治法求解最大子段和问题的算法实现。最大子段和问题是指在一个可能包含负数的整数序列中,寻找连续子段使其和最大。文章通过Java和C/C++两种语言版本,详细展示了分治法的实现过程:将问题分解为左子序列、右子序列和跨越中间的子序列三种情况,递归求解后合并结果。算法的时间复杂度为O(nlogn),相比暴力解法更高效。代码中包含了详细的注释说明,适合算法学习者参考实现。
2025-09-26 14:55:12
485
原创 最小生成树之Prim算法(详细图解)
本文介绍了Prim算法在最小生成树问题中的应用。Prim是一种基于顶点的贪心算法,适用于稠密图,通过逐步选择最近顶点构建最小生成树。文章详细解析了算法原理,并提供了代码实现示例。最后推荐了三道练习题目(洛谷P3366、P1967、P1991),从模板题到实际应用,帮助读者深入理解最小生成树概念和Prim算法的使用。代码部分展示了如何初始化图、更新距离以及计算最小权值和的关键步骤。
2025-03-06 21:55:00
1443
原创 全网最细Kruskal算法详解(大佬勿入orz)
本文介绍了Kruskal算法求解最小生成树的原理与实现。最小生成树是在保证图连通的前提下,选择边权和最小的n-1条边。Kruskal算法通过按边权升序选择边,利用并查集判断是否成环,确保所选边不构成回路。文中给出了完整的C++代码实现,包括并查集的find和merge操作,以及Kruskal算法的核心流程。代码实现了从输入图数据到输出最小生成树各边及总权值的完整功能,适合读者学习该算法的具体实现。
2025-03-06 20:31:17
490
原创 链式前向星(大佬勿入orz)
本文介绍了链式前向星的数据结构实现方法。通过定义包含边长、终点和上一条边序号的边结构体,配合head数组记录起点边序号,实现了高效的图存储。文章详细展示了代码实现过程,包括边的添加和输出操作,并通过具体输入示例演示了运行结果。最后作者鼓励读者动手模拟理解,并邀请点赞支持。该数据结构适用于图论算法中的邻接表存储需求。
2024-12-08 17:46:31
434
原创 牛客小白月赛104(A-C题题解)
这是一篇编程竞赛题解分享,作者因约会缺席比赛后补做题目。文章包含三个赛题的解题思路和代码实现:A题通过比较装备战力选择最优装备;B题运用概率论计算招募英雄的成功率;C题使用二分法寻找击败怪物的最小回合数。作者自谦实力有限,详细解释了每题的解题思路,并附上完整代码。文章最后表达了希望获得支持的愿望,并以幽默语气收尾。整体呈现出一个技术分享与个人情感相结合的特色。
2024-11-10 15:25:43
1108
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人