自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 PageHelper 自定义总数查询方案

PageHelper 自定义总数查询

2022-05-25 16:03:38 1968

原创 org.springframework.beans.factory.BeanCreationException 的一种可能的解决方案

问题描述启动SpringBoot项目时,突然出现org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [XXX]解决思路:检查controller层接口和controller层的父类是否命名了相同的请求映射路径。如:@RestControllerp

2022-04-26 16:05:24 2338

原创 Mybatis使用TypeHandler实现Java类型与数据库类型的自定义转换

TypeHandler当 SpringBoot 项目中使用到Mybatis时,通常情况下程序中使用的各种基本数据类型在数据库中都有定义,如 String - VARCHAR;但当使用一些数据库中没有定义的数据类型时,如 Serializable ,此时 Mybatis 无法在数据库的数据类型和程序中的数据类型之间进行转换,就需要使用到自定义 TypeHandler;通过实现 BaseTypeHandler<需要转换的Java类型> 来自定义类型的转换举例将 Java 中的 Seriali

2022-04-11 15:41:51 709 1

原创 Java常用的十二种设计模式

Java常用设计模式

2022-03-10 22:16:10 740 1

原创 Nginx基本配置

Nginx基本配置Nginx配置文件Nginx配置文件# 配置工作进程运行用户,nobody也是一个linux用户,一般用于启动程序#user nobody;#配置工作进程数目。通常为CPU个数,跟随硬件性能调整,如果I/O密集型任务,也就是阻塞式任务较多,可适当增大进程数量。worker_processes 1; #错误日志存放路径,默认日志级别是 error,可以调整。error_log logs/error.log;#error_log logs/error.log

2022-03-01 22:02:50 2537

原创 剑指 Offer 62. 圆圈中最后剩下的数字 (约瑟夫环)

LeetCode - 剑指 Offer 62. 圆圈中最后剩下的数字题目描述解题分析code总结参考题解 by leetcode- Vancomycin题目描述难度:简单0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n =

2022-01-20 14:58:44 575

原创 Tomcat 部署项目时解析JS文件乱码

问题描述:IDEA 内利用Tomcat 启动项目后,访问页面时导入的 JS 文件出现乱码的情况。解决方案:1.修改idea配置 Help -> Edit Custom VM Options 在后面添加:-Dfile.encoding=UTF-82.修改tomcat根目录的conf文件夹下的server.xml文件 在 <Connector port=8080 …/> 标签内添加 URIEncoding="UTF-8" 字段3.修改tomcat根目录的bin文件夹下的ca

2022-01-15 14:15:06 627

原创 IDEA集成Tomcat部署项目后,访问项目出现404的一种可能情况

问题描述:IDEA 集成 Tomcat ,项目部署启动 Tomcat 后,控制台没有项目部署启动信息,且启动时间短暂,打开页面访问项目后出现404。解决方案:检查项目target文件夹下是否存在重复的项目部署文件夹,如 **-0.0.1-SNAPSHOT 这样的版本文件夹,如果存在重复,删除其中一个或者全部删除。再利用Maven清空target后再次启动即可正确的启动项目。存在多个重复的项目版本文件夹会导致tomcat无法正确的找到需要部署的项目文件夹,从而导致项目无法成功部署。岁月悠

2022-01-13 14:09:19 1154

原创 Thread实例连续调用start抛出IllegalThreadStateException

问题描述:创建一个继承了Thread类的子类,调用 start() 方法启动线程,在线程运行结束退出 run() 方法之后,再次调用 start() 会爆 IllegalThreadStateException。即连续对同一个Thread实例调用 start() 方法会出现 IllegalThreadStateException。public class MyTest extends Thread{ public static void main(String[] args) throws

2022-01-12 19:38:01 1013

原创 55. 跳跃游戏 (Java解题 贪心思想)

LeetCode - 55. 跳跃游戏题目描述解题分析code总结题目描述给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为

2021-11-03 11:26:32 154

原创 260. 只出现一次的数字 III (Java解题 高效位运算)

LeetCode - 260. 只出现一次的数字 III题目描述解题分析code总结题目描述给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?示例 1:输入:nums = [1,2,1,3,2,5]输出:[3,5]解释:[5, 3] 也是有效的答案。示例 2:输入:nums = [-1,0]输出:[-1,0]示例 3:

2021-10-30 10:59:20 103

原创 12. 整数转罗马数字 (Java解题 贪心思想)

LeetCode - 12. 整数转罗马数字题目描述解题分析code总结题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为

2021-10-26 10:37:27 179

原创 240. 搜索二维矩阵 II (Java解题 简单高效)

LeetCode - 240. 搜索二维矩阵 II题目描述解题分析解题code总结题目描述难度:中等编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例 1:输入:matrix = [[1,4,7,11,15], [2,5,8,12,19], [3,6,9,16,22], [10,13,14,17,24], [18,21,

2021-10-25 09:10:16 197

原创 19. 删除链表的倒数第 N 个结点 (Java解题 递归 & 双指针) ( 1024 快乐加倍!)

LeetCode - 19. 删除链表的倒数第 N 个结点题目描述解题分析题目描述难度:中等给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]提示:链表中结点的数目为 sz1 <= sz <=

2021-10-24 17:27:25 2239

原创 492. 构造矩形 (Java解题 简单高效)

LeetCode - 66. 加一题目描述解题分析解题代码总结题目描述难度:简单作为一位web开发者, 懂得怎样去规划一个页面的尺寸是很重要的。 现给定一个具体的矩形页面面积,你的任务是设计一个长度为 L 和宽度为 W 且满足以下要求的矩形的页面。要求:你设计的矩形页面必须等于给定的目标面积。宽度 W 不应大于长度 L,换言之,要求 L >= W 。长度 L 和宽度 W 之间的差距应当尽可能小。你需要按顺序输出你设计的页面的长度 L 和宽度 W。示例:输入: 4输

2021-10-23 09:48:15 439

原创 66. 加一 (Java解题 简单高效)

LeetCode - 66. 加一题目描述题解分析解题代码总结题目描述难度:简单给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例 2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示

2021-10-21 08:39:58 69

原创 剑指 Offer 59 - I. 滑动窗口的最大值 (Java解题 单调队列)

LeetCode - 剑指 Offer 59 - I. 滑动窗口的最大值题目描述题解分析解题代码总结题目描述难度:困难给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 3

2021-10-20 18:48:42 223

原创 String的底层分析 (学习笔记)

StringTable底层分析String的基本特性StringPoolString的内存分配字符串的拼接操作拼接效率的对比String的基本特性String: 字符串,使用一对" "引起来表示。String s1 = “java”; 字面量的定义方式.String s2 = new String(“hello”);String声明为final的,不可被继承String实现了Serializable接口: 表示字符串是支持序列化的。实现了Comparable接口: 表示String 可以比较

2021-10-18 22:30:03 903

原创 5. 最长回文子串 ( Java解题 动态规划 )

LeetCode - 5. 最长回文子串题目描述题解分析解题代码总结题目描述难度:中等给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"示例 3:输入:s = "a"输出:"a"示例 4:输入:s = "ac"输出:"a"提示:1 <= s.length <= 1000s 仅由数字和英文字母(大写和/或小写)

2021-10-17 10:35:24 320 1

原创 230. 二叉搜索树中第K小的元素 (Java解题 中序遍历)

LeetCode - 230. 二叉搜索树中第K小的元素题目描述题解分析解题代码总结题目描述难度:中等给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。示例 1:输入:root = [3,1,4,null,2], k = 1输出:1示例 2:输入:root = [5,3,6,2,4,null,null,1], k = 3输出:3提示:树中的节点数为 n 。1 <= k <= n <=

2021-10-17 10:03:19 197

原创 Java七大设计原则 (学习笔记)

Java设计模式设计模式的重要性设计模式的目的设计模式七大原则单一职责原则配合 尚硅谷Java设计模式 学习效果更佳!视频连接设计模式的重要性软件工程中,设计模式 (design pattern) 是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。这个术语是由埃里希·伽玛(Erich Gamma)等人在1990年代从建筑设计领域引入到计算机科学大厦 VS 简易房一栋大厦的建造需要经过各种可行性研究,结构规划,以及许多设计人员参与设计与调研才能在正确的实施。而简易房无需那么

2021-10-16 22:55:48 101

原创 38. 外观数列 ( Java解题 动态规划+双指针迭代)

LeetCode - 38. 外观数列题目描述题解分析题目描述难度:中等给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:countAndSay(1) = “1”countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。前五项如下:1. 12. 113. 214. 1211

2021-10-15 12:44:53 126

原创 剑指 Offer II 044. 二叉树每层的最大值 ( Java解题 - 层序遍历 )

LeetCode - 剑指 Offer II 044. 二叉树每层的最大值题目描述题解分析解题代码总结题目描述难度:中等给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。示例1:输入: root = [1,3,2,5,3,null,9]输出: [1,3,9]解释: 1 / \ 3 2 / \ \ 5 3 9 示例2:输入: root = [1,2,3]输出: [1,3

2021-10-14 15:35:07 406

原创 MySql数据库基础 (学习笔记)

MySql数据库基础数据库管理表文件管理表文件数据行管理高级插入命令事务概述事务的特性关于事务之间的隔离性MySql数据库启用事务数据库库设计三范式配合 b站 动力节点 mysql 教程学习效果更佳! 视频链接数据库管理查看所有的数据库名show databases;创建一个数据库create database数据库名;删除一个数据库drop database数据库名;表文件管理查看指定的数据库下所有的表文件名use 数据库名;show tables;在指定的数据库下创建表

2021-10-12 19:23:33 130

原创 MyBatis框架教程 (学习笔记)

持久层框架-MaBatis框架概述MyBatis框架概述MyBatis 框架的使用MyBatis 依赖使用步骤步骤具体落实配合 b站 动力节点 mybatis 教程学习! 视频链接框架概述框架是一个软件,半成品的软件,定义好了一些基础功能,需要加入你的功能就是完整的。基础功能是可重复使用的,可升级的。框架是一个模板,一个骨架,向其添入自己的想法,自己的功能,最后呈现出来的就是一个具有独特功能的完整产物;MyBatis框架概述MyBatis官网mybatis是MyBatis SQL Mappe

2021-10-10 21:26:29 285

原创 496. 下一个更大元素 I (Java 通俗易懂)

LeetCode - 496. 下一个更大元素 I题目描述题解分析解题代码总结题目描述难度:简单给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例 1:输入: nums1 = [4,1,2], nums2 = [1,3,4,2]

2021-10-09 10:13:13 223

原创 187. 重复的DNA序列 (Java题解 通俗易懂)

LeetCode - 187. 重复的DNA序列题目描述题解分析解题代码总结题目描述难度:中等所有 DNA 都由一系列缩写为 ‘A’,‘C’,‘G’ 和 ‘T’ 的核苷酸组成,例如:“ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。编写一个函数来找出所有目标子串,目标子串的长度为 10,且在 DNA 字符串 s 中出现次数超过一次。示例 1:输入:s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"输出:["AAAAACC

2021-10-08 17:41:10 575

原创 434. 字符串中的单词数

LeetCode - 434. 字符串中的单词数题目描述题解分析总结题目描述难度:简单统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。示例:输入: "Hello, my name is John"输出: 5解释: 这里的单词是指连续的不是空格的字符,所以 "Hello," 算作 1 个单词。题解分析本题其实就是按照空格分割字符串,我们可以使用 String 自带的 split() 方法分割字符串;这里提供另外一种方式

2021-10-07 11:09:21 58

原创 284. 顶端迭代器

LeetCode - 284. 顶端迭代器题目描述题解分析总结题目描述难度:中等请你设计一个迭代器,除了支持 hasNext 和 next 操作外,还支持 peek 操作。实现 PeekingIterator 类:PeekingIterator(int[] nums) 使用指定整数数组 nums 初始化迭代器。int next() 返回数组中的下一个元素,并将指针移动到下个元素处。bool hasNext() 如果数组中存在下一个元素,返回 true ;否则,返回 false 。int p

2021-10-05 12:43:16 115

原创 1436. 旅行终点站(国庆快乐)

LeetCode - 1436. 旅行终点站题目描述题解分析解题代码总结题目描述难度:简单给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 cityBi 。请你找出这次旅行的终点站,即没有任何可以通往其他城市的线路的城市。题目数据保证线路图会形成一条不存在循环的线路,因此恰有一个旅行终点站。示例 1:输入:paths = [["London","New York"],["Ne

2021-10-01 21:45:18 77

原创 223. 矩形面积

LeetCode - 223. 矩形面积题目描述题解分析解题代码总结题目描述难度:中等给你 二维 平面上两个 由直线构成的 矩形,请你计算并返回两个矩形覆盖的总面积。每个矩形由其 左下 顶点和 右上 顶点坐标表示:第一个矩形由其左下顶点 (ax1, ay1) 和右上顶点 (ax2, ay2) 定义。第二个矩形由其左下顶点 (bx1, by1) 和右上顶点 (bx2, by2) 定义。示例 1:输入:ax1 = -3, ay1 = 0, ax2 = 3, ay2 = 4, bx1 =

2021-09-30 09:27:08 312

原创 剑指 Offer 13. 机器人的运动范围

LeetCode - 剑指 Offer 13. 机器人的运动范围题目描述分析代码总结题目描述难度:中等地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少

2021-09-29 19:06:52 55

原创 剑指 Offer 47. 礼物的最大价值

LeetCode - 剑指 Offer 47. 礼物的最大价值题目描述分析代码总结题目描述难度:中等在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:输入: [ [1,3,1], [1,5,1], [4,2,1]]输出: 12解释: 路径 1→3→5→2→1 可以拿到最多价值

2021-09-26 18:54:45 141

原创 430. 扁平化多级双向链表

LeetCode - 430. 扁平化多级双向链表题目描述分析代码总结题目描述难度:中等多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。给你位于列表第一级的头节点,请你扁平化列表,使所有结点出现在单级双链表中。示例 1:输入:head = [1,2,3,4,5,6,null,null,null,7,8,9,10,null,null,11,12]输出:[

2021-09-24 17:05:24 117

原创 322. 零钱兑换 (动态规划)

LeetCode - 322. 零钱兑换题目描述分析总结题目描述难度:中等给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。你可以认为每种硬币的数量是无限的。示例 1:输入:coins = [1, 2, 5], amount = 11输出:3 解释:11 = 5 + 5 + 1示例 2:输入:coins = [2], amount = 3

2021-09-23 21:05:10 109

原创 剑指 Offer 10- II. 青蛙跳台阶问题

LeetCode - 剑指 Offer 10- II. 青蛙跳台阶问题题目描述分析总结题目描述难度:简单一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21示例 3:输入:n = 0输出:1提示:0 <= n <= 100分析仔细分析就会

2021-09-22 16:30:17 60

原创 58. 最后一个单词的长度(中秋快乐)

LeetCode - 58. 最后一个单词的长度题目描述分析总结题目描述难度:简单给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。示例 1:输入:s = "Hello World"输出:5示例 2:输入:s = " fly me to the moon "输出:4示例 3:输入:s = "luffy is still joyboy"输出:6提示:1 &

2021-09-21 17:13:19 62

原创 300. 最长递增子序列

LeetCode - 300. 最长递增子序列题目描述分析总结题目描述难度:中等给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [0,1,

2021-09-21 10:53:16 86

原创 剑指 Offer 11. 旋转数组的最小数字

LeetCode - 剑指 Offer 11. 旋转数组的最小数字题目描述分析总结题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0分析读题,一个递增数组旋转,那么可知,原本数组中的第一个元素(最小的元素)跑到了数组

2021-09-19 21:52:38 109

原创 剑指 Offer 10- I. 斐波那契数列

LeetCode - 剑指 Offer 10- I. 斐波那契数列题目描述分析总结题目描述难度:简单写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:10000000

2021-09-19 21:24:47 90

空空如也

空空如也

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

TA关注的人

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