自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一文带你了解SpringMVC源码

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言1.1 执行流程图1.2 UML序列图二、源码分析2.1 doService方法2.2 doDispatch方法(核心方法)2.3 获取执行链2.3.1 getHandler方法2.3.2 AbstractHandlerMapping#getHandlerInternal方法2.3.3 AbstractHandlerMapping#lookupHandlerMethod2.3.4 RequestMappingInfo#getMa

2021-10-29 15:48:17 257

原创 LeetCode869重新排序得到 2 的幂 Java

题目:给定正整数 N ,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零。如果我们可以通过上述方式得到 2 的幂,返回 true;否则,返回 false。示例 1:输入:1输出:true示例 2:输入:10输出:false示例 3:输入:16输出:true示例 4:输入:24输出:false示例 5:输入:46输出:true提示1 <= N <= 10^9思路 :方法一:列出该数字所..

2021-10-28 11:54:32 152

原创 LeetCode453最小操作次数使数组元素相等 Java

题目:给你一个长度为 n 的整数数组,每次操作将会使 n - 1 个元素增加 1 。返回让数组所有元素相等的最小操作次数。示例 1:输入:nums = [1,2,3]输出:3解释:只需要3次操作(注意每次操作会增加两个元素的值):[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]示例 2:输入:nums = [1,1,1]输出:0提示n == nums.length1 <= nums.leng..

2021-10-20 14:58:05 139

原创 LeetCode211 添加与搜索单词 - 数据结构设计 Java

题目:请你设计一个数据结构,支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。实现词典类 WordDictionary : WordDictionary() 初始化词典对象 void addWord(word) 将 word 添加到数据结构中,之后可以对它进行匹配 bool search(word) 如果数据结构中存在字符串与 word 匹配,则返回 true ;否则,返回 false 。word 中可能包含一些 '.' ,每个 . 都可以表示任何一个字..

2021-10-19 15:27:02 125

原创 LeetCode208 实现 Trie (前缀树) Java

题目:Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。请你实现 Trie 类: Trie() 初始化前缀树对象。 void insert(String word) 向前缀树中插入字符串 word 。 boolean search(String word) 如果字符串 word 在前缀树中,返回 true(即,在检索之前已经插入);否则,返回 false 。..

2021-10-19 15:25:12 80

原创 LeetCode476 数字的补数 Java

题目:给你一个 正 整数 num ,输出它的补数。补数是对该数的二进制表示取反。示例 1:输入:num = 5输出:2解释:5 的二进制表示为 101(没有前导零位),其补数为 010。所以你需要输出 2 。示例 2:输入:num = 1输出:0解释:1 的二进制表示为 1(没有前导零位),其补数为 0。所以你需要输出 0 。提示给定的整数 num 保证在 32 位带符号整数的范围内。num >= 1你可以假定二进制数不包含前导零位。本题与 1009..

2021-10-18 10:05:58 57

原创 LeetCode38 外观数列 Java

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

2021-10-15 10:12:52 72

原创 LeetCode剑指 Offer II 069 山峰数组的顶部 Java

题目:符合下列属性的数组 arr 称为 山峰数组(山脉数组) :1、arr.length >= 32、存在 i(0 < i < arr.length - 1)使得: arr[0] < arr[1] < ... arr[i-1] < arr[i] arr[i] > arr[i+1] > ... > arr[arr.length - 1]给定由整数组成的山峰数组 arr ,返回任何满足 arr[0] < arr[1] < .....

2021-10-14 11:53:03 122

原创 创建型模式——原型模式

原型模式文章目录一、定义二、结构图三、实现3.1 步骤3.2 举例3.2.1 创建原型类(Prototype)3.2.2 创建**具体原型** (Concrete Prototype)3.2.3 创建具体生成器(Concrete Builders)3.2.4 调用(Client)3.2.5 输出3.2.6 原型注册站(缓存)3.2.7 缓存类3.2.8 原型注册站调用四、JDK中使用到该模式五、小结5.1 优点5.2 缺点一、定义原型模式是一种创建型设计模式, 使你能够复制已有对象, 而又无需

2021-10-13 14:26:55 106

原创 LeetCode 29两数相除 Java

题目:给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2示例 1:输入: dividend = 10, divisor = 3输出: 3解释: 10/3 = truncate(3.33333..) = ..

2021-10-12 10:16:21 109

原创 LeetCode273 整数转换英文表示 Java

题目:将非负整数 num 转换为其对应的英文表示。示例 1:输入:num = 123输出:"One Hundred Twenty Three"示例 2:输入:num = 12345输出:"Twelve Thousand Three Hundred Forty Five"示例 3:输入:num = 1234567输出:"One Million Two Hundred Thirty Four Thousand Five Hundred Sixty Seven"示..

2021-10-11 11:04:06 104

原创 LeetCode187 重复的DNA序列 Java

题目:所有 DNA 都由一系列缩写为 'A','C','G' 和 'T' 的核苷酸组成,例如:"ACGAATTCCG"。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。编写一个函数来找出所有目标子串,目标子串的长度为 10,且在 DNA 字符串 s 中出现次数超过一次。示例 1:输入:s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"输出:["AAAAACCCCC","CCCCCAAAAA"]示例 2:输入:s = "AAAAA..

2021-10-08 16:47:19 129

原创 LeetCode134 加油站 Java

题目:在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的元素均为非负数。示例 1:输入: gas = [1,2,3,4,5]cost = ..

2021-10-07 15:38:37 82

原创 创建型模式——建造者模式

建造者模式文章目录建造者模式一、定义二、结构图三、实现3.1 步骤3.2 举例3.2.1 创建产品类(Products)3.2.2 创建生成器(Builder)3.2.3 创建具体生成器(Concrete Builders)3.2.4 创建主管类(Director)3.2.5 调用(Client)四、JDK中使用到该模式五、小结5.1 优点5.2 缺点六、简化建造者模式6.1 步骤6.2 实现一、定义生成器模式是一种创建型设计模式, 使你能够分步骤创建复杂对象。 该模式允许你使用相同的创建代码

2021-10-06 15:47:49 114

原创 LeetCode517 超级洗衣机 Java

题目:假设有 n 台超级洗衣机放在同一排上。开始的时候,每台洗衣机内可能有一定量的衣服,也可能是空的。在每一步操作中,你可以选择任意 m (1 <= m <= n) 台洗衣机,与此同时将每台洗衣机的一件衣服送到相邻的一台洗衣机。给定一个整数数组 machines 代表从左至右每台洗衣机中的衣物数量,请给出能让所有洗衣机中剩下的衣物的数量相等的 最少的操作步数 。如果不能使每台洗衣机中衣物的数量相等,则返回 -1 。示例 1:输入:machines = [1,0,5]输出..

2021-09-29 14:59:29 95

原创 LeetCode437 路径总和 III Java

题目:给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。示例 1:输入:root = [10,5,-3,3,2,null,11,3,-2,null,1], targetSum = 8输出:3解释:和等于 8 的路径有 3 条,如图所示。示例 2:输入:root = [5,4,8,11,nu..

2021-09-28 11:51:30 60

原创 创建型模式——简单工厂模式、工厂模式、抽象工厂模式

工厂模式文章目录工厂模式一、简单工厂模式1.1 定义1.2 结构图1.3 实现1.3.1 创建抽象产品类1.3.2 创建具体产品类1.3.3 创建工厂类1.3.4 客户端调用1.4 小结1.4.1 优点1.4.2 缺点二、工厂模式2.1 定义2.2 结构图2.3 实现2.3.1 工厂类(创建者)2.3.2 具体工厂类(具体创建者)2.3.3 客户端调用2.4 小结2.4.1 优点2.4.2 缺点三、抽象工厂模式3.1 定义3.2 结构图3.3 实现3.3.1 产品13.3.2 产品23.3.3 工厂3.

2021-09-27 17:57:29 230

原创 LeetCode371 两整数之和 Java

题目:给你两个整数 a 和 b ,不使用 运算符 + 和 - ,计算并返回两整数之和。示例 1:输入:a = 1, b = 2输出:3示例 2:输入:a = 2, b = 3输出:5提示-1000 <= a, b <= 1000思路 :不能用加减,那就只能用位运算了。使用位运算模拟 列竖式如: 算 10+3 10: 1010 3: 11异或求出两数之和(进位还没加上去)10^3=(1001)2按位与求出进位,再左移一位求..

2021-09-26 11:34:42 69

原创 LeetCode430 扁平化多级双向链表 Java

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

2021-09-24 11:14:15 61

原创 创建型模式——单例模式

单例模式文章目录单例模式一、介绍二、单例模式实现2.1 饿汉式2.2 懒汉式(线程不安全)2.3 懒汉式(线程安全,同步)2.4 双重检查2.5 静态内部类2.6 枚举三、在Spring中的应用总结一、介绍单例模式是一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。二、单例模式实现实现方式将默认构造函数设为私有, 防止其他对象使用单例类的 new运算符。新建一个静态构建方法作为构造函数。 该函数会 “偷偷” 调用私有构造函数来创建对象, 并将

2021-09-23 13:47:27 155

原创 设计模式的基本原则

设计模式七大原则文章目录设计模式七大原则一、设计模式的目的二、设计模式的七大原则2.1 单一职责原则2.2 接口隔离原则2.3 依赖倒转原则2.4 里氏替换原则2.5 开闭原则2.6 迪米特法则2.7 合成复用原则总结一、设计模式的目的编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好 重用性、可读性、可扩展性、可靠性、高内聚,低耦合。代码重用性 (相同功能的代码,不用多次编写)可读性 (规范编码,让

2021-09-23 10:39:36 70

原创 LeetCode326 3的次幂 Java

题目:给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x示例 1:输入:n = 27输出:true示例 2:输入:n = 0输出:false示例三输入:n = 9输出:true提示-231 <= n <= 231 - 1思路 :不断除以3,直到结果为1 。不能整除代表不是3的次幂使用公约数,先算出三的最大次..

2021-09-23 09:30:39 80

原创 LeetCode292 Nim 游戏 Java

题目:你和你的朋友,两个人一起玩 Nim 游戏: ·桌子上有一堆石头。 ·你们轮流进行自己的回合,你作为先手。 ·每一回合,轮到的人拿掉 1 - 3 块石头。 ·拿掉最后一块石头的人就是获胜者。假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 true;否则,返回 false 。示例 1:输入:n = 4输出:false 解释:如果堆中有 4 块石头,那么你永远不会赢得比赛; ..

2021-09-18 09:33:35 86

原创 LeetCode37 解数独 Java

题目:编写一个程序,通过填充空格来解决数独问题。数独的解法需 遵循如下规则:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用 '.' 表示。示例 1:输入:board = [["5","3",".",".","7",".",".",".","."],["6",".",".","1","9","5",".",".","."],[".","9..

2021-09-17 13:43:46 70

原创 LeetCode36 有效的数独 Java

题目:请你判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。1、数字 1-9 在每一行只能出现一次。2、数字 1-9 在每一列只能出现一次。3、数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)4、数独部分空格内已填入了数字,空白格用 '.' 表示。示例 1:输入:board = [["5","3",".",".","7",".",".",".","."],["6",".",".","1","9","5",..

2021-09-17 10:10:10 73

原创 LeetCode 212 单词搜索II Java

题目:给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words,找出所有同时在二维网格和字典中出现的单词。单词必须按照字母顺序,通过 相邻的单元格 内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。示例 1:输入:board = [["o","a","a","n"],["e","t","a","e"],["i","h","k","r"],["i","f","l","v"]], words = ..

2021-09-16 14:56:08 136

原创 LeetCode 52 N皇后II Java

题目:n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。示例 1:输入:n = 4输出:2解释:如上图所示,4 皇后问题存在两个不同的解法。示例 2:输入:n = 1输出:1提示1 <= n <= 9皇后彼此不能相互攻击,也就是说:任何两个皇后都不能处于同一条横行、纵行或斜线上。思路 :与LeetCode 51题思路一样,但.

2021-09-15 15:03:51 132

原创 LeetCode 51 N皇后 Java

题目:n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。示例 1:输入:n = 4输出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]解释:如上图所示,4 皇后问题存在两个不同的解法。.

2021-09-15 14:53:30 175

原创 LeetCode162 寻找峰值 Java

这里写自定义目录标题系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入系列文章目录提示:这里可以添加系列文章的所有

2021-09-15 14:26:05 121

原创 mybaits-plus 查询简化

文章目录前言一、mybatis-plus传统的查询方式二、查询优化2.1 相同的方法2.2 优化实现2.3 调用前言使用了mybatis-plus在单表查询上几乎不用自己手动编写sql,但是在条件过多的情况下填充较为麻烦一、mybatis-plus传统的查询方式使用QueryWrapper查询@Testvoid contextLoads() { QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>

2021-04-26 21:02:46 871

原创 spring解决服务端跨域问题

1、使用注解 @CrossOrigin在Controller层加上**@CrossOrigin**注解即可@RestController@CrossOrigin(origins = "*",maxAge = 1800L)public class HelloController { }2、过滤器package com.ivan.config;import org.springframework.context.annotation.Configuration;import or

2021-03-04 11:43:27 930 1

原创 Easy Code 使用与自定义模板

文章目录二、使用步骤1.安装EasyCode2.创建数据库3.在idea中连接数据库4.生成代码5.自定义模板5.1.如何自定义模板5.2.模板代码总结# 一、什么是EasyCodeEasy Code是idea的一个插件,可以直接对数据的表生成entity,controller,service,dao,mapper,html等文件无需任何编码,简单而强大。二、使用步骤1.安装EasyCode进入插件市场:File->Settings->Plugins->Marketpl

2021-02-05 19:42:54 2071

原创 Spring自定义事件注解版 - 记录

一、Spring自定义事件注解版 可用于代码解耦,例如:购买会员支付成功,发布订单支付成功事件。然后多个监听器开始执行:增加会员天数 --> 发送购买成功消息 --> 通知对账系统同步数据 。等等等等二、使用步骤1.创建自定义事件代码如下(示例):package com.ivan.event.listener;import com.ivan.event.event.MyEvent;import org.springframework.context.event.EventLis

2021-01-29 17:27:49 790 1

原创 多线程基础学习记录

文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport

2020-12-25 13:53:18 739

原创 lombok常用注解记录

一、maven地址<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.16</version></dependency>二、常用注解@Getter/@Setter @ToString @EqualsAndHashCode@Data 相当于@ToString

2020-12-25 11:46:58 644

原创 遍历数据库菜单/文件夹 封装成对象 的几种方式

目录背景数据库表书签文件夹表书签文件夹DTOmapper实现方式一(一次获取,直接遍历得到,推荐)方式二(递归获取)结尾背景将数据库中存储的多级菜单/文件夹 遍历封装成对象给前端数据库表书签文件夹表CREATE TABLE `bookmark_folder` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `user_id` bigint(20) DEFAULT NULL COMMENT '用户id', `name` varchar(50) DEF

2020-11-09 23:37:29 630

空空如也

空空如也

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

TA关注的人

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