自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot连接远程Redis踩坑

基于SpringBoot连接远程服务器上的Redis在操作 Redis 的时候, 连接不上 Redis地址、端口、redis配置都没问题报错误: Caused by: io.lettuce.core.RedisConnectionException结果是application.yml文件中配置错了修改前修改后...

2022-05-13 16:40:12 390

原创 MySQL八股文

文章目录1、什么是MySQL?2、存储引擎3、InnoDB和MyISAM的区别4、事务和事务的四大特性(ACID)5、并发事务带来的问题6、事务隔离级别1、什么是MySQL?MySQL是一种关系型数据库,在Java企业级开发中非常常用,因为MySQL是开源免费的,并且方便扩展。阿里巴巴数据库系统也大量用到了MySQL,因此它的稳定性是有保障的,Mysql是开发源代码的,任何人都可以在GPL(General Public Licence)的许可下下载并根据个性化需要对其进行修改。MySQL的默认端口号是3

2022-05-05 22:32:32 2526

原创 ElasticSearch面试题总结

ElasticSearch1.1

2022-05-03 17:11:39 1787

原创 面试八股之Java基础+集合+多线程+JVM

文章目录一、Java基础1.1 面向对象和面向过程的区别1.2 Java语言有哪些特点1.3 JVM、JDK和JRE1.4 Java和C++的区别1.5 字符型常量和字符串常量的区别1.6 构造器Constructor是否可以被Override1.7 重载和重写的区别1.8 Java面向对象编程三大特性一、Java基础1.1 面向对象和面向过程的区别1.2 Java语言有哪些特点1.3 JVM、JDK和JRE1.4 Java和C++的区别1.5 字符型常量和字符串常量的区别1.6 构造器Con

2022-04-28 14:33:15 420

原创 MySQL常见函数

一、单行函数1.1 字符函数length(str):统计字符串的字节数(取决于编码方式,utf8汉字3字节,gbk汉字2字节)concat(str1, str2):拼接字符substr/substring(str, n1 [,n2]):切割字符,n1起始位置(mysql下标从1开始),n2可选,表示切割长度instr(str1, str2):返回str2在str1中首次出现的位置;如果没有找到,则返回0。不区分大小写。trim(str [, substr]):取出字符串前后的substr字符串

2022-04-26 22:19:37 8462

原创 【Leetcode043】买卖股票的最佳时机

121、买卖股票的最佳时机给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5

2022-04-11 11:50:32 67

原创 【Leetcode070】删除排序链表中的重复元素II

82、删除排序链表中的重复元素II 【中等】给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。示例 1:输入:head = [1,2,3,3,4,4,5]输出:[1,2,5]示例 2:输入:head = [1,1,1,2,3]输出:[2,3]提示:链表中节点数目在范围 [0, 300] 内-100 <= Node.val <= 100题目数据保证链表已经按升序 排列方法一:三指针1.1 思路分析这道

2022-03-19 10:09:28 364

原创 【Leetcode037】数组中的第K个最大元素

215、数组中的第K个最大元素给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4提示:1 <= k <= nums.length <= 104-104 <= nums[i] <= 104方法一

2022-03-15 15:30:17 1301

原创 【Leetcode068】电话号码的字母组合

17、电话号码的字母组合【中等】给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = “23”输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]示例 2:输入:digits = “”输出:[]示例 3:输入:digits = “2”输出:[“a”,“b”,“c”]提示:0 <= dig

2022-03-12 21:31:40 85

原创 【Leetcode067】无重叠区间

435、无重叠区间给定一个区间的集合 intervals ,其中 intervals[i] = [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。示例 1:输入: intervals = [[1,2],[2,3],[3,4],[1,3]]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。示例 2:输入: intervals = [ [1,2], [1,2], [1,2] ]输出: 2解释: 你需要移除两个 [1,2] 来使剩下的区间没有重叠。示

2022-03-12 16:37:16 1944

原创 【Leetcode066】旋转图像

48、旋转图像给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]示例 2:输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]输出:[[15,

2022-03-11 10:00:50 61

原创 【Leetcode065】杨辉三角II

119、杨辉三角II【简单】给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。1783c.png)示例 1:输入: rowIndex = 3输出: [1,3,3,1]示例 2:输入: rowIndex = 0输出: [1]示例 3:输入: rowIndex = 1输出: [1,1]提示:0 <= rowIndex <= 33进阶:你可以优化你的算法到 O(rowIndex) 空间复

2022-03-11 09:40:32 355

原创 【Leetcode064】颜色分类

75、颜色分类【中等】给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。必须在不使用库的sort函数的情况下解决这个问题。示例 1:输入:nums = [2,0,2,1,1,0]输出:[0,0,1,1,2,2]示例 2:输入:nums = [2,0,1]输出:[0,1,2]提示:n == nums.length1 <= n <

2022-03-10 09:48:07 1418

原创 【Leetcode063】多数元素

169、多数元素给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入:[3,2,3]输出:3示例 2:输入:[2,2,1,1,1,2,2]输出:2进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。方法一:哈希表1.1 思路分析定义一个哈希表,统计每个数字出现的次数,保存在哈希表中,然后再遍历一次哈希表,找出次数大于n/2的值1

2022-03-09 10:35:09 282

原创 【Leetcode062】二叉搜索树的最近公共祖先

235、二叉搜索树的最近公共祖先给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8

2022-03-08 15:14:14 197

原创 【Leetcode061】两数之和 IV - 输入 BST

653、两数之和 IV - 输入 BST给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。示例 1:输入: root = [5,3,6,2,4,null,7], k = 9输出: true示例 2:输入: root = [5,3,6,2,4,null,7], k = 28输出: false提示:二叉树的节点个数的范围是 [1, 104].-104 <= Node.val <= 104root

2022-03-08 14:17:08 84

原创 【Leetcode060】验证二叉搜索树

98、验证二叉搜索树给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:root = [2,1,3]输出:true示例 2:输入:root = [5,1,4,null,null,3,6]输出:false解释:根节点的值是 5 ,但是右子节点的值是 4 。提示:树中节点数目范围在[1, 104] 内

2022-03-08 11:02:47 84

原创 【Leetcode059】二叉搜索树中的插入操作

701、二叉搜索树中的插入操作【中等】给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回 任意有效的结果 。示例 1:输入:root = [4,2,7,1,3], val = 5输出:[4,2,7,1,3,5]解释:另一个满足题目要求可以通过的树是:示例 2:输入:r

2022-03-07 10:46:18 86

原创 【Leetcode058】二叉搜索树中的搜索

700、二叉搜索树中的搜索【简单】给定二叉搜索树(BST)的根节点 root 和一个整数值 val。你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null 。示例 1:输入:root = [4,2,7,1,3], val = 2输出:[2,1,3]示例 2:输入:root = [4,2,7,1,3], val = 5输出:[]提示:数中节点数在 [1, 5000] 范围内1 <= Node.val <= 107

2022-03-07 09:53:45 158

原创 【Leetcode058】路径总和

112、路径总和给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。叶子节点 是指没有子节点的节点。示例 1:输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22输出:true解释:等于目标和的根节点到叶节点路径如上图所示。示例 2

2022-03-06 22:23:24 109

原创 【Leetcode057】翻转二叉树

226、翻转二叉树给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]示例 2:输入:root = [2,1,3]输出:[2,3,1]示例 3:输入:root = []输出:[]提示:树中节点数目范围在 [0, 100] 内-100 <= Node.val <= 100方法一:递归1.1 思路分析通过递归调用,将只有叶子节点的父节点下的左右子节点交换

2022-03-06 21:32:23 241

原创 【Leetcode056】对称二叉树

101、对称二叉树给你一个二叉树的根节点 root , 检查它是否轴对称。示例 1:输入:root = [1,2,2,3,4,4,3]输出:true示例 2:输入:root = [1,2,2,null,3,null,3]输出:false提示:树中节点数目在范围 [1, 1000] 内-100 <= Node.val <= 100进阶:你可以运用递归和迭代两种方法解决这个问题吗?方法一:递归1.1 思路分析二叉树关于第一个根节点轴对称,那么左子树的前序遍历和右子树的

2022-03-06 21:13:24 427

原创 【Leetcode055】二叉树的最大深度

104、二叉树的最大深度【简单】给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],返回它的最大深度 3 。方法一:深度优先搜索1.1 思路分析递归,好写但不好理解。1.2 代码实现/** * Definition for a binary tree node. * public class TreeNode { * int val

2022-03-06 19:32:46 55

原创 【Leetcode054】二叉树的前序、中序和后序遍历

144、二叉树的前序遍历给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,2,3]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[1,2]示例 5:输入:root = [1,null,2]输出:[1,2]提示:树中节点数目在范围 [0, 100] 内-100 <= Node.val <=

2022-03-06 16:11:23 125

原创 【Leetcode053】 用栈实现队列

232、 用栈实现队列请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false说明:你 只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop from

2022-03-05 11:57:10 51

原创 【Leetcode052】删除排序链表中的重复元素

83、删除排序链表中的重复元素给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。示例 1:输入:head = [1,1,2]输出:[1,2]示例 2:输入:head = [1,1,2,3,3]输出:[1,2,3]提示:链表中节点数目在范围 [0, 300] 内-100 <= Node.val <= 100题目数据保证链表已经按升序 排列方法一:前后指针1.1 思路分析定义两个前后相邻的指针,不断向后遍历,如果

2022-03-05 10:19:37 496

原创 【Leetcode051】替换空格

剑指 Offer 05. 替换空格【简单】请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”限制:0 <= s 的长度 <= 10000方法一:字符数组1.1 思路分析首先,Java中的字符串定义后是不能被修改的,所以不能直接进行,需要借助字符数组。‘%20’应该是3个字符,而不是1个字符,所以当替换时需要将后面的字符移动位置。最后再将字符数组转为字符串返回。1.2

2022-03-04 16:24:57 193

原创 【Leetcode050】二维数组中的查找/搜索二维矩阵 II

剑指 Offer 04. 二维数组中的查找【中等】240、 搜索二维矩阵 II 【中等】在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18,

2022-03-04 16:02:31 96

原创 【Leetcode049】移除链表元素

203、 移除链表元素给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。示例 1:输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]示例 2:输入:head = [], val = 1输出:[]示例 3:输入:head = [7,7,7,7], val = 7输出:[]提示:列表中的节点数目在范围 [0, 104] 内1 <= Node.v

2022-03-04 10:01:17 292

原创 【Leetcode047】有效的字母异位词

242、有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false提示:1 <= s.length, t.length <= 5 * 104s 和 t 仅包含小写字母进阶: 如果输入字符串

2022-03-03 09:12:56 197

原创 【Leetcode046】赎金信

383、赎金信【简单】给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以,返回 true ;否则返回 false 。magazine 中的每个字符只能在 ransomNote 中使用一次。示例 1:输入:ransomNote = “a”, magazine = “b”输出:false示例 2:输入:ransomNote = “aa”, magazine = “ab”输出:false示例 3:输入

2022-03-03 09:12:29 159

原创 【Leetcode045】字符串中的第一个唯一字符

387、 字符串中的第一个唯一字符给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。示例 1:输入: s = “leetcode”输出: 0示例 2:输入: s = “loveleetcode”输出: 2示例 3:输入: s = “aabb”输出: -1提示:1 <= s.length <= 105s 只包含小写字母方法一:1.1 思路分析1.2 代码实现class Solution { public in

2022-03-03 09:11:37 478

原创 【Leetcode044】矩阵置零

73、矩阵置零【中等】给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。示例 1:输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2:输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]提示:m == matrix.lengthn =

2022-03-02 21:39:37 188

原创 Java版gitignore模板

.gitignore模板【Java版】# Compiled class file*.class# Eclipse.project.classpath.settings/# Intellij*.ipr*.iml*.iws.idea/# Maventarget/# Gradlebuild.gradle# Log file*.log# out**/out/# BlueJ files*.ctxt# Mobile Tools for Java (J2ME)

2022-03-02 17:30:29 1611

原创 【Leetcode041】 最大子数组和

53、最大子数组和给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [5,4,-1,7,8]输出:23提示:1 <= nums.length <= 105-1

2022-02-23 20:14:01 792

原创 springmvc 使用fastjson和jackson 处理 json 数据时中文乱码

Fastjson在springmvc配置文件中加入以下内容<!-- 处理请求时返回json字符串的中文乱码问题 --> <mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <

2022-02-21 21:22:31 395

原创 Maven配置过滤

Maven配置过滤<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xm

2022-02-20 17:40:15 483

原创 【Leetcode040】 移动零

283、 移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0]提示:1 <= nums.length <= 104-231 <= nums[i] <= 231 - 1进阶:你能尽量减少完成的操作次数吗?方法一:双

2022-02-18 19:11:55 178

原创 【Leetcode039】两数之和

1、两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], ta

2022-02-18 10:34:41 63

原创 【Leetcode038】爬楼梯

70、爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例 1:输入:n = 2输出:2解释:有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入:n = 3输出:3解释:有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶提示:1 <= n <= 45方法一:普通递归(超时)1.1 思路分析爬n阶楼梯可以分成爬1

2022-02-17 21:48:49 546

空空如也

空空如也

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

TA关注的人

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