Java学习
文章平均质量分 51
肥大毛
落魄谷中寒风吹,春秋蝉鸣少年归。
展开
-
LeetCode刷题---路径总和
是一种用于遍历或搜索树或图的算法。在搜索开始时,首先将根节点放入队列中。然后,在每一步中,算法都会检查队列中的第一个节点,并访问其所有尚未访问过的邻居节点。这些邻居节点随后被添加到队列的末尾。然后,算法从队列中删除当前节点,并继续处理队列中的下一个节点。原创 2024-03-12 16:19:25 · 371 阅读 · 0 评论 -
LeetCode刷题---二叉树展开为链表
如果存在左节点,创建辅助节点指向左节点,判断左节点是否有右节点,如果有右节点,则将辅助节点指向右节点,此时进行拼接操作,即将辅助节点的右节点指向当前节点的右节点,当前节点cur的右节点指向当前节点的左节点,且当前节点的左节点指向为Null。判断当前节点是否有左节点,如果不存在左节点,则当前节点向右移一位。结束上述步骤之后,当前节点向右移一位,之后开始重新执行上述步骤。当根节点不为空时,从二叉树根节点开始遍历。原创 2024-03-07 18:58:19 · 421 阅读 · 0 评论 -
LeetCode刷题---填充每个节点的下一个右侧节点指针 II
如果cur.left不为空时,pre的next节点为cur.left,之后pre指针前进,同理,当cur.right不为空的时候,pre的next指针为cur.right,之后pre前进,最后当前节点cur前进。如果cur前进后为空,则表示需要开始遍历下一层,cur指向dummy的next节点,如果cur仍为空,则循环结束,返回根节点,如果cur不为空,则表示cur已经指向了下一层的第一个节点处,开始该层的遍历。创建辅助指针pre,pre初始指向dummy,之后通过pre来填充当前层的next节点。原创 2024-03-07 00:57:44 · 599 阅读 · 1 评论 -
LeetCode刷题---填充每个节点的下一个右侧节点指针
如图所示,值为2的节点的左子节点的next节点为其右子节点,此时判断2的节点的next节点是否为NULL,如果不为NULL,值为2的节点的next节点为值为3的节点,且值为2的节点的右子节点的next节点为值为3的节点的左子节点。如果值为2的节点的next节点为NULL,则从其下一层的最左边的节点开始重新遍历。因为根节点的next节点为NULL,开始从根节点的下一层的最左边的节点开始遍历。从根节点开始,根节点的左子节点的next节点就指向根节点的右子节点。可以根据每一层来依次遍历。原创 2024-03-06 22:43:13 · 430 阅读 · 0 评论 -
LeetCode刷题---从中序与后序遍历序列构造二叉树
传入参数中,左子树在中序遍历中的起始索引为中序遍历中第一个数的索引,终止索引为根节点midRoot-1,左子树在后序遍历中的起始索引为后序遍历中第一个数的索引,终止索引为起始索引+左子树的节点个数(通过中序遍历中根节点的索引-1-中序遍历中左子树的起始索引得出)。传入参数中,右子树在中序遍历中的起始索引为midRoot+1,终止索引为midRight,在后序遍历中的起始索引为左子树在后序遍历中的终止索引+1,终止索引为lastRoot-1。后序遍历中最后一个数为二叉树的根节点。原创 2024-02-26 22:58:46 · 499 阅读 · 0 评论 -
LeetCode刷题---从前序与中序遍历序列构造二叉树
递归创建右子树,传入参数为先序和中序遍历数组,右子树的起始节点索引=根节点在中序遍历数组中的索引+1和右子树的终止节点索引(首次传入右子树的终止节点索引为数组长度n-1)创建递归方法buildTreeNew(先序遍历数组,中序遍历数组,左子树的起始节点,左子树终止节点索引,右子树的起始节点,右子树终止节点索引)其中左子树的终止索引可以根据 根节点在先序遍历数组中的索引(首次传入为0)+左子树节点的个数=左子树终止节点的索引。首先根据先序遍历找出二叉树的根节点,先序遍历的起始索引为根节点的索引。原创 2024-02-26 21:02:03 · 675 阅读 · 0 评论 -
LeetCode刷题---对称二叉树
4.分别递归遍历左子树的左子树和右子树的右子树是否对称,左子树的右子树和右子树的左子树是否对称,如果都对称,则返回true。3.如果左节点的值和右节点的值不相等时,返回false。2.如果左节点和右节点只有一个为空时,返回false。首先对二叉树进行判空,如果根节点为空,则返回true。1.如果左节点和右节点同时为空,则返回true。接下来对当前节点的左节点和右节点进行判断。原创 2024-02-22 16:13:46 · 335 阅读 · 0 评论 -
LeetCode刷题---反转二叉树
创建临时节点,将右节点赋值给临时节点,将左节点赋值给右节点,再将临时节点赋值给左节点。对二叉树进行反转,如果根节点为空,则返回。原创 2024-02-22 15:02:36 · 443 阅读 · 0 评论 -
LeetCode刷题---相同的树
找出递归结束条件,如果两个树满足条件一个树或者其子树为空,而另一个树或者其子树不为空,两个树或者其子树的值不等,则返回false。使用递归的方法对两个树进行判断,如果两个的树的根或者其左子树和右子树的值都相等,则返回true。首先对两个树进行空值判断,如果两个树都为空,则返回true。原创 2024-02-21 10:59:55 · 423 阅读 · 0 评论 -
LeetCode刷题---LRU缓存
如果哈希表中已经存储该节点,则需要对该节点的数据进行更新,首先根据key从哈希表中取出该节点,再对节点中的value重新赋值,之后根据LRU算法将该节点从链表中删除,再添加到链表表头的位置。在写put方法的时候,如果哈希表中未存储该节点,则创建一个新的节点,节点中key和value分别为要添加的键和值,之后将key和新创建的节点添加到哈希表中,在将新的节点添加到链表头部。在写get方法来获取某节点的时候,如果哈希表中存储了该节点,根据LRU算法,则先将该节点删除,再将该节点添加到链表中。原创 2024-02-21 09:40:45 · 2025 阅读 · 0 评论 -
LeetCode刷题---二叉树的最大深度
如果有子节点,则先将当前节点的左节点作为参数传入方法中,之后在将当前节点的右节点作为参数传入方法中。使用先序遍历的方法来找出二叉树的最大深度,即先访问根节点,在访问左节点,之后是右节点。对于任意一个节点,其深度为其左子树深度和右子树深度的最大值加1。二叉树的最大深度是从根节点到最远叶子节点的最长路径上的节点数。首先判断当前节点是否还有子节点,如果没有则结束递归,返回0。最大高度是从根节点到最远叶子节点的最长路径的长度。最后对取出的左右节点深度的最大值+1返回即可。使用递归的方法来解决该题。原创 2024-01-27 10:19:00 · 464 阅读 · 0 评论 -
LeetCode刷题---分隔链表
此时将right指向节点的下一个节点指向空,right指向节点即为合并后链表的尾节点,left的下一个节点指向r初始节点的下一个节点。如果当前节点的val值大于等于x,right指向节点的下一个节点为当前节点cur,right前进一个节点。如果当前节点的val值小于x,left指向节点的下一个节点为当前节点cur,left前进一个节点。创建链表r用来表示大于等于给定值x的链表,创建辅助链表right指向r的初始节点。创建链表l用来表示小于给定值x的链表,创建辅助链表left指向l的初始节点。原创 2024-01-25 22:43:06 · 434 阅读 · 0 评论 -
LeetCode刷题---旋转链表
首先创建辅助节点cur遍历指向链表最后一个节点,并将cur的下一个节点指向head头节点,形成闭环,并且在遍历的过程中计算链表的长度n。n-k表示当前节点(当前节点指向未反转节点的最后一个节点)到反转后的链表的最后一个节点的位置。当cur前进了n-k个节点后,即cur已经走到了反转后链表的最后一个节点。再创建一个新的节点指向反转后链表的头节点,再将cur的下一个节点指向空。为了防止k>n的情况,需要对n-k的结果对n求余。原创 2024-01-25 21:45:29 · 502 阅读 · 0 评论 -
Spring Cache
Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单的添加一个注解,就可以实现缓存功能Spring Cache提供了一层抽象,底层可以切换不同的Cache来实现。具体就是通过CacheManager接口来统一不同的缓存技术CacheManager是Spring提供的各种缓存技术的抽象接口。原创 2023-01-02 16:06:52 · 517 阅读 · 0 评论 -
Redis学习(一)
Redis是一个基于内存的key-value结构数据库,读写性能较高。原创 2023-01-01 19:38:25 · 429 阅读 · 0 评论 -
基于MybatisPlus实现service层快速开发
1.按id查询2.添加3.修改4.删除5.分页查询。原创 2022-11-14 21:19:35 · 333 阅读 · 0 评论 -
MybatisPlus学习(五)---代码生成器
MybatisPlus学习(五)---代码生成器原创 2022-11-10 12:22:31 · 465 阅读 · 0 评论 -
MybatisPlus学习(四)---DML编程控制
数据不做真正的删除,通过添加字段的方式来表示数据的删除状态,如果添加的字段值为0,则表示数据没删除,如果为1,则表示数据已经删除。如User实体类如果不写@TableName(“表名”)注解的话,mybatisplus会在数据库中自动查找表名为user的表。在查询全部数据的时候,不会查询到deleted为1的数据,因为在执行sql语句的时候会自动加上deleted=0条件;1.type-prefix:tb_ 表示为实体类的自动映射名加上tb_前缀。2.id-type: auto 表示为配置id生成策略。原创 2022-11-09 22:00:39 · 1319 阅读 · 1 评论 -
MybatisPlus学习(三)---DQL编程控制
可以在属性上添加@TableField(exist=false)注解,表示该属性在数据库表中是否存在,默认为true。原创 2022-11-09 20:34:01 · 484 阅读 · 0 评论 -
MybatisPlus学习(二)---标准分页
创建MybatisPlus拦截器类MpConfig,通过mybatisPlusInterceptor方法创建Mybatisplus拦截器,并在拦截器中添加分页拦截器。原创 2022-11-09 16:58:04 · 258 阅读 · 0 评论 -
MybatisPlus学习(一)
MybatisPlus是基于Mybatis框架基础上开发的增强型工具。主要是为了简化开发、提高效率。原创 2022-11-08 19:44:20 · 456 阅读 · 0 评论 -
SpringBoot学习(三)---整合第三方技术(JUnit & Mybatis & Druid & MybatisPlus)
SpringBoot学习(三)---整合第三方技术(JUnit & Mybatis & Druid & MybatisPlus)原创 2022-11-08 17:47:14 · 198 阅读 · 0 评论 -
SpringBoot学习(二)---基础配置
SpringBoot学习(二)---yaml格式原创 2022-11-08 12:04:39 · 527 阅读 · 0 评论 -
SpringBoot学习(一)---初识SpringBoot
SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。原创 2022-11-08 10:47:39 · 200 阅读 · 0 评论 -
Mybatis通过pagehelper插件实现分页
pageSize:每页显示的条数pageNum:当前页的页码index:当前页的起始索引,index=(pageNum-1)*pageSize;count:总记录数totalPage:总页数//求总页数totalPage=0){}原创 2022-11-07 22:37:22 · 533 阅读 · 0 评论 -
Mybatis缓存
MyBatis中的缓存相关类都在cache包下面,而且定义了一个顶级接口Cache,默认只有一个实现类PerpetualCache,PerpetualCache中是内部维护了一个HashMap来实现缓存。原创 2022-11-07 21:56:56 · 249 阅读 · 0 评论 -
Maven---私服资源的上传与下载
SNAPSHOT:代表项目未完全完成,是未完成版本RELEASE:代表项目已经完全完成,是正式发行版本。原创 2022-11-07 20:16:49 · 332 阅读 · 0 评论 -
Maven---本地仓库访问私服配置
将创建好的仓库itheima-snapshot和itheima-release仓库纳入仓库组中。通过< mirror >标签,id为私服仓库组的name,进入maven-public中。输入仓库名称后点击确定即可。原创 2022-11-07 19:40:12 · 1651 阅读 · 0 评论 -
Maven私服(Nexus)搭建
Maven私服(Nexus)搭建原创 2022-11-07 18:51:44 · 145 阅读 · 0 评论 -
SpringMVC---拦截器
2.ProjectInterceptor类实现HandlerInterceptor接口,并实现三个方法preHandle(在原始操作执行前拦截)、postHandle(在原始操作执行后执行)、afterCompeletion(在post拦截之后拦截)2.拦截内容不同:Filter对所有访问进行增强,Interceptor仅对SpringMVC的访问进行增强。如果第二个拦截器preHandle设置返回为false,则执行after1,执行完成后结束。原创 2022-11-07 15:10:03 · 143 阅读 · 0 评论 -
SSM整合(四)---异常处理器
SSM整合(四)---异常处理器原创 2022-11-05 21:24:22 · 222 阅读 · 0 评论 -
SSM整合(三)---前后端通信协议
SSM整合(三)---前后端通信协议原创 2022-11-05 18:23:06 · 515 阅读 · 0 评论 -
SSM整合(二)---功能模块开发
SSM整合---功能模块开发原创 2022-11-05 18:16:26 · 149 阅读 · 0 评论 -
SSM整合(一)---整合配置
SSM整合(一)---整合配置原创 2022-11-05 18:10:27 · 87 阅读 · 0 评论 -
SpringMVC学习---放行静态资源
在学习SpringMVC的过程中,在Servlet容器初始化的配置文件中配置了SpringMVC拦截所有资源请求,这导致在项目中访问.html文件时访问不到。原创 2022-11-03 21:29:41 · 296 阅读 · 0 评论 -
SSM学习(七)---RESTful
REST(Representational State Transfer) 学习原创 2022-11-03 20:34:06 · 214 阅读 · 0 评论 -
SSM学习(六)---Spring MVC
SSM学习(六)---Spring MVC原创 2022-11-03 17:01:39 · 85 阅读 · 0 评论 -
SSM学习(五)---Spring AOP&事务管理
SSM学习(五)---Spring AOP&事务管理原创 2022-10-31 21:06:43 · 190 阅读 · 0 评论 -
Spring中整合JUnit
Spring中整合JUnit原创 2022-10-31 11:33:41 · 61 阅读 · 0 评论 -
Spring中整合Mybatis
Spring中整合Mybatis原创 2022-10-31 11:07:31 · 87 阅读 · 0 评论