自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode热题HOT42. 接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

2024-07-05 20:29:58 197

原创 leetcode面试题 08.06. 汉诺塔问题

对于n个盘子的情况,关键点在于如何将前n-1个盘子从起始柱(例如A)移动到辅助柱(例如B),然后将第n个盘子直接移动到目标柱(例如C),最后再将n-1个盘子从辅助柱(例如B)移动到目标柱(例如C)。其中,T(n-1)表示移动n-1个盘子的时间,因为需要进行两次这样的操作,再加上将第n个盘子直接移动一次。设移动n个盘子的时间为T(n),则可以写成递归式:[ T(n) = 2T(n-1) + 1 ]将n-1个盘子从柱子A移动到柱子B(使用柱子C作为辅助柱子)。将第n个盘子从柱子A移动到柱子C。

2024-06-18 16:57:59 239

原创 缓存穿透、击穿、雪崩的解决方法

一、缓存穿透指的是,由于缓存中没有对应的值,每次请求都要查询数据库,容易导致数据库压力过大。

2024-05-25 14:10:52 820

原创 TCP/IP 四层模型及常见协议

④WebSocket 通信数据格式比较轻量,用于协议控制的数据包头部相对较小,网络开销小,而 HTTP 通信每次都要携带完整的头部,网络开销较大(HTTP/2.0 使用二进制帧进行数据传输,还支持头部压缩,减少了网络开销)。②WebSocket 使用 ws:// 或 wss://(使用 SSL/TLS 加密后的协议,类似于 HTTP 和 HTTPS 的关系) 作为协议前缀,HTTP 使用 http:// 或 https:// 作为协议前缀。②POST请求的参数通过请求的消息体传递,而不是暴露在URL中。

2024-05-07 10:34:44 1516

原创 浏览器输入URL到页面展示的过程详解

重点面试题:当你的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示回来,经历了什么?

2024-05-07 10:28:56 1087

原创 Java内存区域详解

直接内存是一种特殊的内存缓冲区,并不在 Java 堆或方法区中分配的,而是通过 JNI 的方式在本地内存上分配的。除了 StackOverFlowError 错误之外,栈还可能会出现OutOfMemoryError错误,这是因为如果栈的内存大小可以动态扩展, 如果虚拟机在动态扩展栈时无法申请到足够的内存空间,则抛出OutOfMemoryError异常。⚠️ 注意:程序计数器是唯一一个不会出现 OutOfMemoryError 的内存区域,它的生命周期随着线程的创建而创建,随着线程的结束死亡。

2024-05-06 10:24:14 987

原创 Java类加载过程、加载器详解(委派模型)

假设有一个自定义类加载器 A,它要加载的类依赖于特定的库,而这个特定的库又是由另一个自定义类加载器 B 加载的。在标准的双亲委派模型中,类加载器 A 需要加载的类会先委派给其父类加载器去加载,但是父类加载器并没有加载这个特定的库,因此无法加载类。双亲委派模型保证了 Java 程序的稳定运行,可以避免类的重复加载(JVM 区分不同类的方式不仅仅根据类名,相同的类文件被不同的类加载器加载产生的是两个不同的类),避免类冲突和版本冲突的问题,也保证了 Java 的核心 API 不被篡改。

2024-05-06 10:09:49 784 1

原创 Java类文件.class详解

典型的解释型语言包括Python、JavaScript等,它们不需要生成可执行文件,而是直接在解释器中运行源代码。以上是.class文件的主要组成部分,它们共同构成了Java编译后的二进制表示形式,被Java虚拟机加载和执行。在编译型语言中,源代码会被整个编译成机器码或者中间代码(比如Java的字节码),生成可执行文件。解释型语言的执行速度通常比编译型语言慢,因为每次执行都需要解释器实时解释源代码。典型的编译型语言包括C、C++等,它们在执行时需要依赖特定平台的编译结果。

2024-05-05 15:38:57 789

原创 JVM垃圾回收详解

G1 垃圾收集器在处理大堆内存时表现出色,它通过将堆内存划分为多个大小相等的区域(Region),并根据垃圾收集的需要来动态调整区域的大小和分配策略,从而有效地避免了堆内存碎片化问题,并且能够在保证较低停顿时间的同时实现高吞吐量的垃圾收集。算法的基本思想是通过一系列的称为 “GC Roots” 的对象作为起点,从这些节点开始向下搜索,节点所走过的路径称为引用链,当一个对象到 GC Roots 没有任何引用链相连的话,则证明此对象是不可用的,需要被回收。新生代是堆空间的一部分,主要用于存放新创建的对象。

2024-05-05 14:25:52 704

原创 leetcode热题HOT 287. 寻找重复数

给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,返回 这个重复的数。你设计的解决方案必须 不修改 数组 nums 且只用常量级 O(1) 的额外空间。

2024-04-30 15:50:31 196

原创 Java面试重点之反射机制

允许程序在运行时查询和操作对象的类型信息。通过反射,程序能够在运行时获取对象的类定义信息,如类的名称、方法、字段、注解等,并且可以动态地调用对象的方法或访问其字段,而无需在编译时具体知道对象的类。本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息。Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。

2024-04-30 15:48:31 965 1

原创 leetcode热题HOT 5. 最长回文子串

给你一个字符串 s,找到 s 中最长的回文子串。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”

2024-04-28 15:26:06 533

原创 leetcode热题HOT 215. 数组中的第K个最大元素(堆和快速排序)

给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。示例 1:输入: [3,2,1,5,6,4], k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6], k = 4输出: 4。

2024-04-28 15:23:37 807

原创 leetcode热题HOT 32. 最长有效括号

给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。示例 1:输入:s = “(()”输出:2解释:最长有效括号子串是 “()”示例 2:输入:s = “)()())”输出:4解释:最长有效括号子串是 “()()”示例 3:输入:s = “”输出:0。

2024-04-26 10:15:04 459 1

原创 leetcode热题HOT 152. 乘积最大子数组

给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。测试用例的答案是一个 32-位 整数。

2024-04-26 09:52:09 407

原创 leetcode热题HOT 84. 柱状图中最大的矩形

给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。求在该柱状图中,能够勾勒出来的矩形的最大面积。

2024-04-23 09:31:07 547

原创 leetcode热题HOT 394. 字符串解码

给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。

2024-04-22 09:52:04 247

原创 leetcode热题HOT 155. 最小栈

设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。实现 MinStack 类:MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int getMin() 获取堆栈中的最小元素。

2024-04-22 09:50:55 409

原创 idea连接Docker数据库

我们在docker下创建了数据库,想要更方便的查看和操作该数据库,idea和DataGrip或者其他人家都可以。在数据库连接时需要填写数据库名字,主机,端口,数据库用户名和密码。输入之后先不要点击OK和按Enter键,我们先测试下信息是填写正确,点击下方的Test Connection 测试连接按钮,如果显示成功则表示能正常连接。

2024-04-18 17:08:38 477

原创 leetcode热题HOT 33. 搜索旋转排序数组

整数数组 nums 按升序排列,数组中的值 互不相同。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2]。

2024-04-18 15:20:43 220

原创 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder

网上有教程说将mybatisplus 3.4.1 改为 3.4.2 版本,还是不行。,改完之后代码可能会报一些错误,重新compile一下,终于把这个问题顺利解决了。检查了下面的几项确认没有错误,代码也没有问题。3、数据库的ip、端口号和数据库名称。4、数据库中有没有要操作的表。

2024-04-16 10:44:56 198

原创 leetcode热题HOT 74. 搜索二维矩阵

给你一个满足下述两条属性的 m x n 整数矩阵:每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。给你一个整数 target ,如果 target 在矩阵中,返回 true;否则,返回 false。

2024-04-16 10:44:11 582

原创 leetcode热题HOT 51. N 皇后

按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。

2024-04-15 11:07:01 381

原创 leetcode热题HOT 131. 分割回文串

1、判断回文子串:字符串反转后和原字符串相同即为回文串,可用双指针法判断。i < j;2、字符串截取:通过subString()方法来进行字符串截取,返回字符串中的子字符串。子字符串从指定索引处的字符开始,到此字符串末尾。从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。参数说明:beginIndex – 起始索引(包括)、endIndex – 结束索引(不包括)。

2024-04-15 11:01:43 582

原创 leetcode热题HOT 207. 课程表(拓扑排序)

你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1。在选修某些课程之前需要一些先修课程。先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi。例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1。请你判断是否可能完成所有课程的学习?如果可以,返回 true;否则,返回 false。

2024-04-14 14:18:42 429

原创 leetcode热题HOT 22. 括号生成(回溯)

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]示例 2:输入:n = 1输出:[“()”]

2024-04-14 14:11:42 234

原创 leetcode热题HOT 200. 岛屿数量(深入理解DFS和BFS)

广度优先搜索(BFS)和深度优先搜索(DFS)是两种常用的图搜索算法,用于解决许多与图相关的问题,包括路径搜索、连通性检测等。广度优先搜索从起始顶点开始,逐层遍历图中的节点。具体来说,它先访问起始顶点的所有邻居节点,然后依次访问这些邻居节点的邻居节点,以此类推,直到所有可达节点都被访问到。在搜索过程中,通常使用队列(Queue)来保存待访问的节点,确保按照层级顺序进行遍历。在广度优先搜索中,每一层的节点都会在同一时间被访问,因此可以确保在搜索过程中按照从起始节点到目标节点的最短路径顺序进行搜索。

2024-04-11 12:26:08 1035

原创 leetcode热题HOT146. LRU 缓存

请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。实现 LRUCache 类:LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1。void put(int key, int value) 如果关键字 key 已经存在,则变更其数据值 value;如果不存在,则向缓存中插入该组 key-value。

2024-04-09 21:57:14 511

原创 leetcode热题HOT 208. 实现 Trie (前缀树)

前缀树的应用包括但不限于:①自动补全②拼写检查③字典实现④IP 路由查找⑤前缀匹配搜索引擎前缀树的实现可以采用多种方式,包括基于数组、基于指针、基于哈希表等。在实际应用中,需要根据具体情况选择最合适的实现方式。

2024-04-09 21:08:34 1089

原创 解决IDEA 控制台中文乱码

上方导航栏“Help→Etit Custom VM Options…

2024-04-07 16:42:09 470

原创 苍穹外卖微信登陆失败

微信开发者测试失败,无法正常登录并显示菜品信息。

2024-04-04 15:45:41 519

原创 leetcode热题HOT 23. 合并 K 个升序链表

给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。

2024-04-04 15:21:28 443

原创 java: 警告: 源发行版 11 需要目标发行版 11

这个警告表明你的 Java 编译器发行版与目标发行版不一致,导致可能会出现兼容性问题。

2024-04-01 10:56:01 1409

原创 Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:2.7.3

确保本地仓库服务器已经正确启动,可以在 http://localhost:8081/repository/maven-public/ 上提供所需的依赖。因此,在自行配置 Maven 访问私服时,建议确保私服地址正确、具有良好的网络连接、配置了适当的访问权限,并且定期进行维护和监控,以确保系统的稳定性和可靠性。找到maven配置文件 setting.xml ,将自己配置的镜像访问路径注释掉!元素,将 Maven 镜像重定向到私服,以确保 Maven 从私服下载依赖。原因是我配置了maven访问私服!

2024-03-25 12:59:55 696

原创 leetcode热题HOT leetcode131. 分割回文串

递归模板void backtracking(参数) {if (终止条件) {存放结果;return;for (选择:本层集合中的元素) {处理单个节点;backtracking(路径,选择列表);// 递归回溯,撤销处理结果判断回文子串:字符串反转后和原字符串相同即为回文串,可用双指针法判断。i < j;字符串截取:通过subString()方法来进行字符串截取,返回字符串中的子字符串。//子字符串从指定索引处的字符开始,到此字符串末尾。

2024-03-10 17:06:25 580

原创 leetcode热题HOT 25. K 个一组翻转链表

给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。

2024-03-10 16:49:44 597

原创 leetcode必刷题 96.不同的二叉搜索树

给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。

2024-03-10 16:32:30 335

原创 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile

②删除旧的编译插件状态文件:根据错误信息中提供的路径 G:\web-demo\target\maven-status\maven-compiler-plugin\compile\default-compile\inputFiles.lst,尝试手动删除这个文件,然后重新运行 Maven 编译命令。③更新 Maven 插件:有时候使用较老版本的插件可能会引发问题,尝试更新 maven-compiler-plugin 到最新版本,可以在项目的 pom.xml 文件中指定最新版本。

2024-03-10 15:59:50 975

原创 leetcode热题HOT 240. 搜索二维矩阵 II

在以上两种解题方法中,二分法查找和二叉搜索树的方式都是针对有序矩阵的搜索问题提出的高效算法。通过对矩阵特性的利用,我们可以避免对整个矩阵进行遍历搜索,从而降低时间复杂度。二分法查找方法通过在每行进行二分搜索,将时间复杂度降低到了 O(mlogn),其中 m 为行数,n 为列数。这种方法适用于每行元素有序排列的情况。二叉搜索树的方法则利用了矩阵的特殊排列方式,从右上角开始搜索,通过逐行缩小搜索范围,最终找到目标值或者确定其不存在。该方法的时间复杂度为 O(m + n),适用于每行和每列元素均有序排列的情况。

2024-03-08 16:43:13 1246

原创 插件和依赖的区别

在 Maven 项目中,pom.xml 配置文件中的插件(Plugin)和依赖(Dependency)的区别:

2024-03-07 15:39:53 293

空空如也

空空如也

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

TA关注的人

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