自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 刷算法题常用工具类集锦(Java)

本文章用于记录解算法题中常被用到的一些类及相关方法,在很多平台解算法题是没有智能补全或提示的,所以只能靠记,记住这些工具类及其用法是解题的基础。

2025-03-23 22:56:55 284

原创 算法题分享 | 全排列 II

这里以数组 nums = [3,3,0,3] 举例,假如在填充第 0 个位置时选中了 nums[1],那么最终的得到的全排列当中一定存和在第 0 个位置时选中了 nums[3] 或 nums[0] 的重复的全排列,因此,我们需要确保的是,在同一个位置,相同的元素只选一次。我们可以先对数组进行排序,确保相同的元素相邻,这样每次递归时,可以先判断前一个元素是否和当前元素相同并且没有被选中,如果是,直接跳过该元素,因为在遍历前面的元素时,肯定已经尝试过把该元素填充到当前位置,这里要是再选就会导致出现重复了。

2025-03-23 15:12:07 280

原创 算法题分享 | 求根节点到叶节点数字之和

可以基于深度优先搜索,遍历每个节点,对于每个节点,把其 val 值添加到当前数字中,如果是叶子节点,再把该数字添加到总和。如何在数字中拼接上当前节点值?由于节点取值 0 ~ 9,于是可以先把当前数字乘以 10,然后再加上节点值即可。有兴趣可以关注公众号【Lemon程序员】一起学习更多的干货哈!推荐一个可用于练手、毕业设计参考、增加简历亮点的项目。,树中每个节点都存放有一个。计算从根节点到叶节点生成的。给你一个二叉树的根节点。是指没有子节点的节点。

2025-03-16 11:47:19 239

原创 一文搞明白 AVL 和 红黑树!

在实际应用中,选择合适的自平衡二叉搜索树至关重要。例如,在数据库索引优化、文件系统目录结构管理、实时交易系统订单管理以及缓存系统数据管理等场景中,合理选用 AVL 树或红黑树可以显著提升系统的性能和用户体验。开发者应根据具体的应用需求,权衡查找、插入和删除操作的频率,以及内存使用等因素,做出明智的选择。

2025-03-15 20:15:37 676

原创 算法题分享 | 寻找旋转排序数组中的最小值 II

最终 low 和 high 一定会在最小值元素上相遇,所以当 low >= high 即可退出,此时 low 和 high 同时在最小值上。,它原来是一个升序排列的数组,并按上述情形进行了多次旋转。请你找出并返回数组中的。会如何影响,为什么?说明最小值在 mid 的右侧,此时将 low 右移到 mid + 1。说明最小值在 mid 的左侧,此时将 high 左移到 mid;推荐一个可用于练手、毕业设计参考、增加简历亮点的项目。你必须尽可能减少整个过程的操作步骤。的数组,预先按照升序排列,经由。

2025-03-09 20:42:25 271

原创 算法题分享 | 寻找旋转排序数组中的最小值

最终 low 和 high 一定会在最小值元素上相遇,所以当 low >= high 即可退出,此时 low 和 high 同时在最小值上。,它原来是一个升序排列的数组,并按上述情形进行了多次旋转。请你找出并返回数组中的。说明最小值在 mid 的右侧,此时将 low 右移到 mid + 1。说明最小值在 mid 的左侧,此时将 high 左移到 mid;推荐一个可用于练手、毕业设计参考、增加简历亮点的项目。的数组,预先按照升序排列,经由。你必须设计一个时间复杂度为。】一起学习更多的干货哈!

2025-03-08 12:57:34 398

原创 项目部署至服务器后无法访问 直接搞定

如果应用是以 docker 容器的形式启动的,那么需要启动容器时需要通过 -p 参数设置端口映射,例如在 docker 容器内部应用监听的是 80 端口,启动容器时就要加上 -p 80:80 参数,前者是服务器端口,后者是映射的容器端口,两者可以不一致。如果使用的是云服务器,还需要到控制台安全组开放目标端口,否则,无法访问。有兴趣可以关注微信公众号【Lemon 程序员】一起学习更多的干货哈!推荐一个可用于练手、毕业设计参考、增加简历亮点的项目。先确保应用在监听目标端口。

2025-03-08 12:55:17 149

原创 算法题分享 | 填充每个节点的下一个右侧节点指针 II

但是要通过 next 遍历第 i 层,那么我们就需要在第 i-1 层完成第 i 层节点的连接,而由于在第 i-1 层是可以通过每个节点 left 和 right 指针来访问第 i 层的节点的,所以是可以完成连接的。即可解决,每次遍历一层的节点,对于每个节点,把 next 指向下一节点即可。需要实现遍历每层节点,除了借助队列外,我们还可以借助 next,因为我们本来就是需要把每层的节点连成链表,既然是链表,我们也就可以遍历啦。填充它的每个 next 指针,让这个指针指向其下一个右侧节点。

2025-03-04 23:38:17 249

原创 算法题分享 | 填充每个节点的下一个右侧节点指针

实现的,不同的点在于,后者是每次只取出一个节点,无需知道层之间的边界,而后者是每次取出一层的节点进行遍历,这样也可以确定层的边界。填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为。即可解决,每次遍历一层的节点,对于每个节点,把 next 指向下一节点即可。,其所有叶子节点都在同一层,每个父节点都有两个子节点。推荐一个可用于练手、毕业设计参考、增加简历亮点的项目。初始状态下,所有 next 指针都被设置为。

2025-03-04 00:06:50 415

原创 算法题分享 | 子集 II

当数组中有多个相同的元素相邻时,如果一个子集中选择了这些元素中部分元素,并且不是选择靠前的几个,那么这个子集可以跳过不选,因为一定会有跟该子集相同的子集。举个例子,现在有 2,2,2,2 这几个相同的元素并且相邻,此时如果子集中选择了第一和第三的 2,那么最终会和选择第一和第二或者第二和第三等等的子集重复。因此,落实到具体的做法,我们需要先对数组进行排序,使得相同的元素相邻,然后遍历各子集的每个元素时,都判断是否存在相同并且没有被选中的前一个元素,如果有,就直接跳过该子集。返回的解集中,子集可以按。

2025-03-03 21:23:07 351

原创 算法题分享 | 三角形最小路径和

要计算到达某行的最小路径和,可以先算出到达前一行各个结点的最小路径和,然后基于这一结果可以算出到达本行各个结点的最小路径和,最终取其中的最小值,这也就是动态规划算法。这样我们就把为原问题拆解为了多个小规模的子问题,并且子问题间是存在重叠,需要依赖其他子问题的计算结果,这样也可以减少重复的计算。因为如果是从左到右的话,当获取当前行的 dp[j] 的时候,就会把上一行保留的 dp[j] 结果给覆盖点,这样。当 i = j,简化为:f(i,j) = f(i-1,j-1) + triangle[i][j]。

2025-03-03 12:59:38 660

原创 算法题分享 | 环形链表 II

给定一个链表的头节点  `head` ,返回链表开始入环的第一个节点。 *如果链表无环,则返回 `null`。*如果链表中有某个节点,可以通过连续跟踪 `next` 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 `pos` 来表示链表尾连接到链表中的位置(**索引从 0 开始**)。如果 `pos` 是 `-1`,则在该链表中没有环。**注意:`pos` 不作为参数进行传递**,仅仅是为了标识链表的实际情况。

2025-03-02 23:21:42 895

原创 一文搞定!Mysql 主从复制 读写分离 分库分表

在互联网业务爆发式增长的时代背景下,传统单体数据库架构面临着三大核心挑战:海量数据存储、高并发访问压力、业务连续性保障。本章将重点解析 MySQL 生态中主从复制、读写分离、分库分表三大核心技术的体系化应用。## 主从复制### 什么是主从复制MySQL 主从复制是指将主数据库的数据自动复制到一个或多个从数据库的过程。主数据库(Master)负责写操作,从数据库(Slave)负责读操作,这种架构可以实现读写分离,提高系统的并发处理能力。MySQL支持一台主库同时向多台从库进行复制, 从库同时

2025-03-02 16:56:24 955

原创 算法题分享 | 路径总和 II

给你二叉树的根节点 `root` 和一个整数目标和 `targetSum` ,找出所有 **从根节点到叶子节点** 路径总和等于给定目标和的路径。**叶子节点** 是指没有子节点的节点。

2025-03-02 15:04:13 136

原创 算法题分享 | 寻找旋转排序数组中的最小值

已知一个长度为 `n` 的数组,预先按照升序排列,经由 `1` 到 `n` 次 **旋转** 后,得到输入数组。例如,原数组 `nums = [0,1,2,4,5,6,7]` 在变化后可能得到:* 若旋转 `4` 次,则可以得到 `[4,5,6,7,0,1,2]`* 若旋转 `7` 次,则可以得到 `[0,1,2,4,5,6,7]`注意,数组 `[a[0], a[1], a[2], ..., a[n-1]]` **旋转一次** 的结果为数组 `[a[n-1], a[0], a[1], a[

2025-03-01 00:17:11 277

原创 Quartz 和 Xxl-Job 任务调度框架主要用法

Quartz 和 Xxl-Job 任务调度框架主要用法 定时任务

2023-09-20 23:57:46 387 1

原创 ElasticSearch 读写 更新 批量操作执行原理

ES 是一个开源的高扩展的分布式全文搜索引擎,是整个 ElasticStack 技术栈的核心。本文阐述了ES 读写 更新 批量操作的详细执行原理

2023-09-18 23:18:17 989

空空如也

空空如也

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

TA关注的人

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