自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xwhxy的博客

不断自学,寻找自己喜欢方向的数管专业大学生一枚

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

原创 LCR 024. 反转链表

摘要:本文介绍了单链表反转的迭代算法实现。通过初始化prev、curr、nextTemp三个指针,逐步修改节点指向关系完成反转。关键步骤包括保存下一个节点(curr.next)、反转当前节点指向(curr.next=prev)、移动指针。以1->2->3->null为例,经过三次循环后链表变为3->2->1->null。算法时间复杂度O(n),空间复杂度O(1)。重点解释了初始循环时curr.next=prev如何将头节点指向null的过程,即通过指针赋值使节点1成为新链

2025-11-24 22:32:37 235

原创 数据结构算法学习day5——链表

本文介绍了三种链表结构的实现:单向链表、双向链表和双向环形链表。在单向链表中,详细讲解了节点定义、增删改查等基本操作,并比较了普通实现与带哨兵节点实现的区别。双向链表部分展示了如何通过prev和next指针实现双向遍历,以及头尾哨兵节点的应用。最后,双向环形链表通过哨兵节点自指形成环形结构,实现了更高效的插入和删除操作。全文通过代码示例详细说明了各类链表的实现要点和操作逻辑,为理解链表数据结构提供了实用参考。

2025-11-24 12:41:32 117

原创 JavaWeb零基础学习Day8——Tlias智能学习辅助系统(Web后端实战项目)

本文介绍了"Tlias智能学习辅助系统"的开发过程,重点分析了需求分析、技术实现和开发实践三个关键环节。系统定位为企业级学习管理平台,包含部门管理、员工管理、报表统计等六大功能模块,采用前后端分离架构,使用Java+SpringBoot+Vue等技术栈实现。开发过程中解决了Lombok注解失效、Nginx反向代理配置、RESTful接口设计等技术问题,详细阐述了部门管理的CRUD操作实现,包括参数接收、数据校验等关键点。文章还介绍了日志技术的应用,通过Logback实现日志分级管理。整个

2025-11-21 02:09:51 888

原创 数据结构算法学习day4——数组

本文介绍了数组的基本概念及其在编程中的应用。数组是一种通过索引标识元素的连续存储数据结构,支持高效的随机访问(O(1)时间复杂度)。文章重点讲解了动态数组的实现,包括添加/删除元素时的容量检查和自动扩容机制(1.5倍增长),使用System.arraycopy进行元素移动。动态数组通过懒初始化优化内存使用,并在容量不足时自动扩容。最后简要提及了二维数组的概念。

2025-11-06 09:00:00 585

原创 JavaWeb零基础学习Day7——MyBatis

MyBatis是一款优秀的持久层框架,用于简化JDBC开发。本文介绍了MyBatis的基本使用方法,包括Mapper接口声明、SQL注解配置、单元测试以及数据库连接池概念。重点讲解了@Mapper和@Select注解的使用,展示了如何通过SpringBoot测试类执行查询操作。同时解释了方法引用System.out::println的原理和forEach遍历集合的用法。文章还对比了JDBC与MyBatis的区别,说明了数据库连接遗漏的危害,并简要提及了增删改查操作注意事项。最后指出在XML配置文件中可以更灵

2025-11-02 01:58:55 836

原创 数据结构算法学习day3——二分查找

本文介绍了二分查找算法的实现与优化。算法部分展示了两种Java实现:一种是传统二分查找,另一种优化了边界条件。针对常见问题进行了说明,包括区间选择、防止整数溢出、符号使用等。文章还讨论了算法评价标准,重点分析了时间复杂度的计算方法和表示方式(大O表示法)。最后展示了二分查找的扩展应用:寻找最左/最右侧元素,通过记录候选位置的方式实现了这一功能。这些实现都考虑了升序数组的特性,使用无符号右移运算符防止溢出,体现了对算法细节的深入思考。

2025-11-01 21:14:29 638

原创 JavaWeb零基础学习Day6——JDBC

摘要:本文介绍了JDBC的基本概念和使用方法。JDBC是Java操作关系型数据库的API,由数据库厂商提供驱动实现。通过示例展示了数据库修改和查询操作:1)使用Statement执行update语句更新数据;2)使用PreparedStatement执行select查询,并将结果封装到User对象。文章详细演示了连接数据库、执行SQL、处理结果集和释放资源的完整流程,指出此类模板化操作可由AI自动化生成,避免重复编码。

2025-10-31 02:05:24 857

原创 JavaWeb零基础学习Day5——MySQL

本文介绍了MySQL的基础学习路线,包括安装配置、数据模型和SQL语句操作。重点讲解了MySQL服务的启动/停止命令(net start/stop mysql)、修改root密码(mysqladmin命令)和登录方式(mysql -u -p)。同时提及后续学习内容:数据库基础操作、函数与约束、多表查询和事务处理。提供了完整的MySQL入门学习框架,适合零基础学习者系统掌握数据库知识。

2025-10-29 12:48:38 823

原创 数据结构算法学习day2——队列

本文介绍了队列的基本概念及其在银行排队系统等场景的应用。详细讲解了使用数组模拟队列的实现方法,包括初始化、判空判满、入队出队等操作。针对数组队列不可复用的问题,提出了环形队列的优化方案,通过取模运算实现队列空间的循环利用。文章包含完整的Java代码实现,演示了两种队列(普通数组队列和环形队列)的具体操作,并比较了它们的优缺点。环形队列通过调整front和rear指针的含义,有效解决了空间复用问题,提高了队列的实用性。

2025-10-28 12:35:02 574

原创 JavaWeb零基础学习Day5——Web基础

本文介绍了SpringBoot Web开发的基础知识和实践案例。主要内容包括:1. SpringBoot入门程序开发,展示如何创建Web应用并处理HTTP请求;2. HTTP协议详解,包含请求/响应格式及状态管理;3. 用户列表展示案例,实现数据读取、封装和响应;4. 分层解耦思想,讲解三层架构和IOC/DI实现原理;5. Bean管理和依赖注入的注解使用技巧。文章通过具体代码示例演示了SpringBoot的核心功能,帮助开发者快速掌握Web应用开发的关键技术。

2025-10-26 19:46:54 1116

原创 数据结构算法学习day1——稀疏数组

本文介绍了数据结构的基本分类和稀疏数组的应用。数据结构分为线性结构(如数组、链表、栈等)和非线性结构(如树、图等)。稀疏数组是一种用于存储大量重复值的优化方法,通过记录非零元素的位置和值来压缩存储空间。文章详细说明了二维数组与稀疏数组的转换过程,包括遍历原始数组、创建稀疏数组、存储非零元素等步骤,并提供了Java代码实现示例,展示了如何将棋盘数据转换为稀疏数组存储及恢复过程。

2025-10-24 14:18:08 399

原创 JavaWeb零基础学习Day4——Maven

Maven是一款基于POM模型的Java项目管理工具,主要功能包括依赖管理、项目构建和统一项目结构。它通过坐标唯一标识资源,由groupId、artifactId和version组成。IDEA集成Maven时需要配置pom.xml文件管理依赖,支持排除依赖和生命周期管理(clean、default、site)。单元测试方面,JUnit框架提供了断言和注解(如@BeforeAll)来规范测试流程,企业开发中需关注测试覆盖率。常见问题包括网络导致的依赖下载失败,可通过刷新或检查网络解决。

2025-10-20 13:07:30 974

原创 牛客算法基础noob73 三角形面积

摘要:本文介绍了如何计算平面上三个不共线整数点构成的三角形面积,提供了完整的Java实现代码。程序通过创建Point和Triangle类来存储坐标信息,使用几何方法计算面积:当两边为竖直线时特殊处理,否则通过斜率和点到直线距离公式计算底边和高。重点解释了代码中"T.c.x"的含义,这是通过链式访问对象成员的方式获取三角形第三个顶点的x坐标,并详细说明了这种写法的合法性原理。程序最终输出保留两位小数的面积结果。

2025-10-15 17:16:40 460

原创 JavaWeb零基础学习Day3——Ajax & Element

本文介绍了Ajax技术及其在前后端交互中的应用,重点讲解了Axios简化Ajax请求的方法。概述了前后端分离开发模式,推荐使用YApi进行接口管理。详细说明了Vue脚手架搭建项目的方法和开发流程,并介绍了Element组件库的使用方式,包括常见组件的应用案例。最后提到项目打包部署时可能遇到的Nginx端口占用问题及解决方法。全文聚焦于现代Web开发中的关键技术点,为开发者提供了实用指南。

2025-10-13 23:02:37 1251

原创 牛客算法基础noob71 学生综合评估系统

牛客大学开发的学生综合评估系统通过学业成绩A和社会实践B(满分100)评定学生。优秀标准需同时满足:A+B>140且综合分S=A×70%+B×30%≥80。系统输入学生人数N及每个学生的id、A、B值,输出"Excellent"或"Not excellent"。评估逻辑已在Java代码中实现,通过判断两个条件来确定评定结果。

2025-10-13 23:01:22 397

原创 牛客算法基础noob70 两点间距离

这篇文章介绍了一个Java方法,用于计算二维平面上两点之间的欧几里得距离。方法接收两个Point对象作为参数,每个对象包含x和y坐标。通过提取两个点的坐标值,使用数学公式√[(x₂-x₁)² + (y₂-y₁)²]计算距离,最后返回double类型的距离值。该方法封装了基本的坐标提取和距离计算逻辑,适用于简单的二维几何计算场景。

2025-10-11 15:41:37 107

原创 牛客算法基础noob69 最厉害的学生

该Java程序用于找出总分最高的学生信息。输入N个学生的姓名和三科成绩,计算总分后比较,输出总分最高者(若总分相同则保留输入顺序靠前的)。程序使用Scanner读取输入,将第一个学生设为初始最优值,随后遍历比较更新最优值。最后用printf格式化输出结果,其中格式字符串"%s%d%d%d"分别对应姓名和三个成绩。关键点在于理解printf的格式说明符(%s匹配字符串,%d匹配整数)与参数列表的对应关系。

2025-10-11 00:29:39 648

原创 牛客算法基础noob68 凯撒解密

摘要:本文介绍了一个用于凯撒解密的Java函数,可将加密后的字符串还原为原始表白信。该函数接收加密字符串和位移次数n,通过将每个字母向后移动(26-n)步来实现反向解密(取模26处理循环)。具体步骤包括:计算有效位移、字符索引转换、反向位移运算及结果拼接。其核心思想是将"向前移n步"转化为等效的"向后移26-n步",与加密逻辑保持一致,便于统一计算。该解法时间复杂度为O(n),适用于小写字母字符串的解密需求。

2025-10-10 15:49:03 228

原创 JavaWeb零基础学习Day2——JS & Vue

JavaScript是一种跨平台的脚本语言,主要用于网页交互操作。文章介绍了JS的引入方式(内嵌脚本和外部脚本)、基础语法(变量声明、数据类型、运算符等)、函数定义、常用对象(Array、String、JSON),以及BOM和DOM操作。此外,还简要说明了事件监听机制和Vue框架的特点,包括数据双向绑定、常用指令和生命周期。内容涵盖了JS从基础到框架应用的核心知识点。

2025-10-10 09:00:00 1153

原创 牛客算法基础noob61 字符串操作

摘要:该题目要求处理一个字符串的多次字符替换操作。给定长度为n的字符串和m次操作,每次操作在指定区间[l,r]内将所有c1字符替换为c2。程序通过将字符串转为字符数组进行修改,最后输出结果字符串。关键点包括:1)处理1-based到0-based索引转换;2)遍历指定区间进行字符替换。Java实现采用Scanner读取输入,通过字符数组直接修改提高效率。时间复杂度为O(m*n)。

2025-10-03 21:25:46 379

原创 牛客算法基础noob60 牛牛的考试

文章摘要:牛牛根据"三长一短选最短、三短一长选最长、参差不齐选C"的规则答题。程序处理T道题目,每道4个选项,通过统计选项字符串长度特征自动选择答案:当有唯一最短选项时选最短,唯一最长时选最长,否则选C。该算法能帮助牛牛避免被旺仔哥哥惩罚。

2025-10-02 13:55:45 299

原创 JavaWeb零基础学习Day1——HTML&CSS

本文介绍了HTML和CSS的基础知识,包括HTML作为超文本标记语言的结构特点、常用标签(如img、h1-h6、a等)及其属性,以及CSS的三种引入方式(行内、内嵌、外嵌样式)。重点讲解了网页排版布局、表格表单的设计方法,并提供了详细代码示例。文章还涉及路径设置、样式优先级、文本修饰等实用技巧,适合前端开发初学者快速掌握网页基础开发技能。建议读者结合W3School等资源进行实践练习。

2025-10-02 12:52:35 1613 2

原创 牛客算法刷题noob57 凯撒加密

摘要:本文描述描述了一个密码生成问题,要求将给定的小写字母字符串每个字符向后错位n首都循环移位(z后是a)。输入 rechazadosn和字符串s,核心输出错位后的密码。解决方案使用Java实现,通过函数计算每个n次错位后的字符位置相对偏移,并通过模26运算确保循环处理。

2025-10-01 21:56:41 216

原创 牛客算法基础noob59 简写单词

文章摘要:定义了一种复合词简写规则,即提取每个组成单词的首字母并转为大写。输入一个由若干单词组成的复合词,输出其简写形式。输入规范包括单词数量、长度和分隔方式。输出要求将所有单词首字母大写后按原顺序连接。示例代码展示了Java实现方法:读取输入,分割单词,提取首字母并转换为大写后输出。

2025-10-01 21:54:13 295

原创 牛客算法基础noob58 无限长正整数排列字符串

这段Java代码实现了一个算法,用于查找由连续正整数拼接而成的无限字符串S中第n个字符。程序首先确定n所在的数字位数区间(1位、2位等),然后计算对应的具体数字,最后取出该数字的特定位置的字符。时间复杂度为O(logN),适用于n≤1000的情况。

2025-10-01 21:52:34 383

原创 牛客算法基础noob56 BFS

摘要:该Java程序实现了在给定字符串中查找不区分大小写的子串"Bob"首次出现位置的功能。程序首先检查字符串长度是否小于3,若是直接返回-1。否则将字符串转为小写,通过滑动窗口方式逐个检查连续三个字符是否为"bob",找到即返回起始下标。若遍历完未找到则返回-1,有效处理了边界条件和大小写问题。

2025-09-29 17:15:14 411

原创 MySQL零基础学习Day5——事务

本文介绍了数据库事务的核心概念与操作。事务是一组不可分割的操作集合,具有原子性、一致性、隔离性和持久性四大特性。文章详细说明了事务的提交方式设置(自动/手动)、基本操作命令(COMMIT/ROLLBACK)以及事务隔离级别,并分析了并发事务可能产生的脏读、不可重复读和幻读问题,为数据库事务管理提供了全面指导。

2025-09-28 10:00:00 855

原创 牛客算法基础noob54 斗兽棋

摘要:代码实现了一个基于四种棋子(elephant、tiger、cat、mouse)克制关系的博弈游戏。当牛牛或牛妹的棋子能吃掉对方时分别输出"win"或"lose",否则输出"tie"。但代码存在字符串比较错误,应使用equals()方法而非==运算符来比较字符串内容。修正后能正确判断棋子的克制关系,如输入"elephant tiger"将输出"win"。

2025-09-27 12:15:04 207

原创 牛客算法基础noob53 年轻人不讲5的

【摘要】本文针对年轻人使用数字"5"的不当行为提出批评,要求将数字字符串中的所有"5"替换为""。题目要求处理长度不超过10^6的数字字符串,给出Java实现方案:通过Scanner读取输入,将字符串转为字符数组遍历,遇到'5'即替换为''后输出。该解决方案使用O(n)时间复杂度,能高效处理最大长度的输入字符串。

2025-09-27 12:12:24 195

原创 MySQL零基础学习Day4——多表查询

摘要:数据库设计中存在三种多表关系:一对多(外键实现)、多对多(中间表)和一对一(唯一外键)。多表查询通过连接查询(内/外/自连接)和子查询实现,需消除笛卡尔积。子查询分为标量、列、行、表四种类型,分别适用不同场景。联合查询需保持列数和类型一致,UNION会自动去重。

2025-09-27 00:33:01 1231

原创 牛客算法基础noob52 扫雷

扫雷矩阵生成任务摘要本文档旨在明确扫雷矩阵生成任务的核心要求,具体如下:任务目标:根据初始扫雷矩阵(*表示地雷,.表示空白格)生成完整矩阵 —— 地雷位置仍输出*,空白格需计算并输出其周围 8 个方向(上、下、左、右及四对角线)的地雷总数。输入要求:先输入矩阵行数n和列数m(1≤n,m≤1000),后输入n行、每行m个字符(仅*和.,无空格)的初始矩阵。输出要求:输出n行完整矩阵,每行字符 / 数字紧凑无空格,行末无多余空格,空白格对应输出周围地雷数(0-8 的整数)。

2025-09-26 12:45:28 382

原创 MySQL零基础学习Day3——函数和约束

本文介绍了数据库中的函数与约束概念。函数部分包括字符串、数值、日期和流程控制函数的使用方法及案例,如生成随机验证码、日期推算等。约束部分解释了主键、非空、唯一性、检查等约束的作用,以及外键约束的两种常用行为(CASCADE和SET NULL),强调外键用于维护表间数据一致性和完整性。文章通过具体SQL示例演示了各种约束的创建方式。

2025-09-25 23:38:32 641

原创 牛客算法基础noob51 杨辉三角

本文介绍了杨辉三角形的数学特性及其Java实现方法。杨辉三角形的第i+1行对应二项式展开式(a+b)^i的系数,每个元素等于上一行同列与前列元素之和。示例展示了前4行:1、11、121、1331。通过Java代码实现时,使用二维数组动态分配每行空间,第一列和最后一列固定为1,中间元素通过递推公式计算。程序读取输入整数n后,构建并输出前n行杨辉三角形,数字间用空格分隔,行末无多余空格。该实现适合1≤n≤34的范围,体现了杨辉三角形的递推特性。

2025-09-23 20:44:05 481

原创 MySQL零基础学习Day2——数据库基础操作

本文简要介绍了MySQL数据库和SQL语言的基础知识。主要内容包括:1)MySQL作为关系型数据库的特点和表结构存储方式;2)SQL通用语法规则和分类(DDL、DML、DQL、DCL);3)重点讲解了DQL查询语言中的条件查询、聚合函数、分组过滤、排序和分页等常用操作;4)DCL数据控制语言的用户管理和权限操作。文章指出,对于Java开发者而言,掌握基本的增删改查和窗口函数即可满足日常开发需求,而DCL语句主要由DBA使用。

2025-09-22 21:45:31 1503

原创 牛客算法基础noob50 矩阵转置

这是一个实现矩阵转置的Java程序。输入矩阵的行列数n、m,然后读取n行m列的矩阵数据。程序通过创建一个m行n列的转置矩阵,将原矩阵的行列互换存储。最后按转置后的格式输出结果,每个元素后跟一个空格,每行结束后换行。该程序适用于1≤n,m≤10的矩阵,元素范围在-10^9到10^9之间。核心算法是通过双重循环将原矩阵元素arr1[i][j]存储到转置矩阵arr2[j][i]的位置。

2025-09-22 16:11:09 249

原创 牛客算法基础noob49 上三角矩阵判定

本文介绍了一个判断n阶方阵是否为上三角矩阵的算法。上三角矩阵要求主对角线以下的所有元素均为0。算法通过双重循环遍历矩阵元素,重点检查行号大于列号的元素是否全为0。若发现非零元素则立即终止检查并返回"NO",否则在检查完成后返回"YES"。该解法的时间复杂度为O(n²),适用于n≤10的矩阵。核心思路是遍历矩阵下三角部分,只要发现非零元素即可判定为非上三角矩阵。

2025-09-21 20:56:48 299

原创 MySQL零基础学习Day1——安装与配置

本文介绍了MySQL 8.0的完整安装与卸载流程。卸载部分包括两种方式:控制面板卸载和安装向导卸载,并提示数据目录不会被自动删除。安装部分详细说明了MySQL的四大版本区别,推荐下载社区版8.0.26,并提供了官网下载地址。配置环节强调需将bin目录添加至环境变量,并演示了验证安装成功的命令。最后针对安装过程中可能出现的数据库初始化失败问题,给出了解决方案:修改my.ini文件中的中文内容为英文字符。全文涵盖了从卸载到安装配置的全过程,并附有常见问题的处理方法。

2025-09-21 20:53:54 1387

原创 牛客算法基础noob47 校门外的树

这段Java代码解决了一个计算移除施工区域后剩余树木数量的问题。输入马路长度L和施工区域数M,接着读取M个施工区域的起止坐标。程序使用布尔数组标记被移除的树木位置,最后统计未被标记的位置数量即为剩余树木数。时间复杂度为O(L*M),空间复杂度为O(L)。关键点在于正确标记所有施工区间的位置,并准确统计剩余树木数量。

2025-09-19 21:37:33 294

原创 牛客算法基础noob46 约瑟夫环

摘要:本文实现了一个经典的约瑟夫环问题求解程序。给定n个人围成一圈,从第k个人开始报数,数到m的人出局,直至只剩一人。程序使用ArrayList动态存储人员编号,通过循环计算淘汰位置(current+m-1)%剩余人数,利用ArrayList的remove操作高效处理人员淘汰过程。最终输出幸存者的原始编号,时间复杂度为O(n²)。程序支持输入参数n(2-100)、k(0-n-1)、m(1-100),通过模运算实现环形计数逻辑。

2025-09-18 18:11:17 207

原创 牛客算法基础noob45 记数问题

本文介绍了一个Java程序,用于统计数字x在1到n区间内所有整数中出现的次数。程序通过将每个整数转换为字符串,逐位比较字符来实现计数功能。输入为两个整数n和x,输出x在[1,n]范围内的总出现次数。该解决方案适用于1≤n≤10⁶和0≤x≤9的情况,通过双重循环遍历每个数字的每一位进行精确统计。

2025-09-18 16:42:44 524

空空如也

空空如也

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

TA关注的人

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