自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode 最大子数组和:动态规划解法详解 (Java)

摘要:本文详细介绍了解决最大子数组和问题的动态规划方法。通过定义状态dp[i]表示以nums[i]结尾的子数组最大和,利用转移方程dp[i] = max(dp[i-1]+nums[i], nums[i])递推求解。算法时间复杂度为O(n log n),空间复杂度O(n)。文章还提供了优化思路(如遍历取最大值可优化至O(n)),并通过示例推演展示计算过程。核心在于理解状态转移逻辑:当dp[i-1]为负时,舍弃前缀能获得更优解。该方法是解决连续子数组优化问题的经典范式。

2025-05-29 15:28:55 443

原创 力扣热题100(附刷题表版)

不仅方便查看题目,并且,在完成题目后,,我放在了结尾,大家自取,直接复制粘贴到。2. 字母异位词分组(中等)3. 最长连续序列(中等)1. 两数之和 (简单)时做记录,整理了下面。

2025-05-28 19:11:44 1089

原创 LeetCode LCR 010 和为 K 的子数组 (Java)

暴力枚举法思路简单,但仅适用于小规模数据。前缀和+哈希表通过空间换时间,将复杂度降至线性,是处理大规模数据的高效方法。特别注意哈希表的初始化与更新逻辑,确保正确处理所有边界情况。相关题目LeetCode 560. 和为K的子数组。

2025-05-17 02:10:16 457

原创 LeetCode LCR 015. 找到字符串中所有字母异位词 (Java)

暴力滑动窗口法直观易懂,但时间复杂度较高,适用于小规模数据。优化后的动态滑动窗口通过减少重复计算,显著提升了效率,是解决此类问题的标准方法。核心在于维护窗口的字符频率差异,避免全量比对,将时间复杂度从 O(n * m) 优化到 O(n)。

2025-05-16 00:01:29 540

原创 LeetCode LCR 016. 无重复字符的最长子串 (Java)

• 空间复杂度:O(1),字符集大小固定(ASCII 最多 128 种字符)。• 收缩左边界:一旦发现重复,左指针右移一位,移除原左边界字符。• 左指针每次仅移动一位,逐步缩小窗口,确保窗口内始终无重复。• 每次左指针右移后,右指针从当前位置继续扩展,无需回溯。• 时间复杂度:O(n),左右指针各遍历一次字符串。• 扩展右边界:右指针不断右移,直到遇到重复字符。• 每个字符最多被左右指针各访问一次,无重复操作。表示当前窗口的左右边界,窗口内字符不重复。实时记录窗口内的字符,确保窗口的唯一性。

2025-05-13 15:47:39 467

原创 LeetCode LCR 007. 三数之和 (Java)

通过排序预处理,结合双指针高效寻找两数之和,同时在每一步跳过重复元素,确保结果唯一。这种方法巧妙地将时间复杂度降至 O(n²),是解决此类问题的经典思路。

2025-05-10 23:29:16 490

原创 LeetCode 11.盛最多水的容器 (Java)

双指针法的优势:通过一次遍历高效解决问题,避免暴力法的 O(n²) 复杂度。关键思想:移动较短的边以探索更高的板,确保不漏掉更大储水量的可能性。相似问题42. 接雨水15. 三数之和掌握双指针法的移动策略,能有效解决数组中的区间最优问题!

2025-05-08 14:00:20 1305

原创 LeetCode 283:移动零 (Java)

暴力法:思路直接但效率低,适合小规模数据。双指针法:高效且简洁,通过一次遍历解决问题,是本题最优解。相似问题27. 移除元素26. 删除有序数组中的重复项掌握双指针法的思想,能有效解决数组操作中的许多问题!

2025-05-08 09:30:27 1050

原创 LeetCode 128. 最长连续序列(Java)

暴力解法(如排序后遍历)的时间复杂度为 O(n log n),不满足题目要求。:利用哈希表(HashSet)快速查询元素是否存在,避免重复遍历。,找到其中最长的连续数字序列的长度。要求算法的时间复杂度为。循环向后查找连续的数,直到无法继续。存储所有元素,去除重复值。是某个连续序列的最小值。给定一个未排序的整数数组。遍历哈希表中的每个元素。,哈希表为空,直接返回。解释:最长连续序列是。

2025-05-07 11:37:05 672

原创 LeetCode LCR 033. 字母异位词分组

(字符出现次数相同但顺序不同的字符串)的字符串分组,并返回分组后的结果列表。,代码简洁且易于理解,适合面试快速实现。若追求极致性能,可尝试字符计数法。为每个字母分配一个质数,计算字符串的质数乘积作为键。用字符出现次数作为标识(例如。:避免字符串拼接或排序的开销。:可能溢出(需使用大整数)。),避免排序的时间开销。:字符串较长时更高效。

2025-05-06 16:20:15 1089

原创 LeetCode 1. 两数之和(Java)

尤其在处理大规模数据时,性能优势明显。在实际面试中,可以先写出暴力解法,再优化为哈希表法,展示对时间复杂度的敏感度。直接遍历数组中的每一对组合,检查它们的和是否等于。的两个数,并返回它们的下标。,且同一元素不能重复使用。当数组长度较大时(例如。(哈希表存储所有元素)

2025-05-06 14:46:12 481

原创 redis“缓存击穿“和“雪崩“形象解析

现象缓存击穿缓存雪崩攻击目标单个热点数据(茅台)大量缓存数据(所有促销商品)触发条件热点数据过期 + 高并发大量数据同时过期 + 高并发破坏力局部击穿(单点高压)全面崩溃(系统级瘫痪)

2025-04-22 14:05:36 417

原创 Swagger简介

是一个用于的开源工具集。@Api。

2025-03-10 15:57:47 330

原创 PO VO DTO到底是个啥?

是常见的分层架构中用于解耦不同层级数据交互的。,它们并非全新的架构方式,而是。性能较低且类型转换不够灵活。在 Java 企业级开发中,

2025-03-10 15:56:32 674

原创 Spring Boot 请求参数接收速查手册

接收 JSON 格式的请求体数据。:从 URL 路径中提取参数(如。:自动将多个参数绑定到对象属性。:接收单个键值对参数(如。:接收多个同名参数(如。

2025-03-10 15:54:38 873

原创 LeetCode 116:省份数量(Java版)

把城市看作人,城市之间的直接连接看作“直接朋友关系”,省份就是“最大的朋友圈”——比如A和B是朋友,B和C是朋友,那么A、B、C属于同一个朋友圈(省份)。DFS解法通过“染色”思想,以每个城市为起点,深度优先标记整个省份。当你发现一个未标记的城市,就用红色笔涂满它所在的整个省份(所有直接或间接相连的城市),然后继续找下一个未标记的城市。DFS(深度优先搜索)能从一个起点出发,尽可能深地遍历所有相连节点,正好适合一次性标记整个“朋友圈”。的定义是一组直接或间接相连的城市,且这些城市之间与其他组没有连接。

2025-03-06 09:13:26 396

原创 lombok正确引入依赖,却无法使用@Slf4j中的log.info问题的解决方法

快速解决lombok中的@Slf4j中的log.info()报错问题

2025-03-04 21:28:32 878

原创 网络热门SQL50题最终篇-完结撒花

通过这5道题,我们解锁了SQL中时间函数年龄计算拒绝虚报年龄!用替代YEAR()。周/月时间窗WEEK()和MONTH()是天然的“时间筛子”。边界处理年末周数、月份轮回需特殊关照。

2025-02-28 14:23:42 446

原创 《网络热门SQL50题,每天5道(3月1号)(40-45)》

自连接:用表的“分身”比较数据窗口函数:灵活处理分组排名分组统计筛选数据集合比对:通过子查询实现“选修全部课程”明日预告:递归查询、复杂连接!关注我,SQL从入门到全栈!🚀。

2025-02-28 10:43:24 598

原创 数据结构-单链表模板实现-C语言版

链表是数据结构中的“火车”,每节车厢(节点)通过“连接器”(指针)串联。本文将用C语言手把手教你搭建一列,实现等核心操作,并附完整可运行代码!

2025-02-27 20:37:40 746

原创 力扣-1929数组-数组串联

核心技巧:利用一次遍历完成两次填充,避免多次循环。适用场景:需要快速生成重复模式的数组。思考延伸:如果题目要求将原数组重复k次,如何优化代码?(答案:循环k次,每次偏移i * n的位置填充)通过这道题,可以掌握数组操作和内存管理的基础技巧,为更复杂的算法问题打下基础!

2025-02-27 12:03:15 233

原创 《网络热门SQL50题,每天5道(2月28号)(36-40)》

多表连接:三表甚至四表联查(像搭积木一样关联数据)。条件过滤:精确筛选目标数据(成绩范围、课程ID、教师姓名)。聚合统计COUNT(*)计算分组记录数。排序与限制快速获取极值。明日预告:复杂子查询!关注我,SQL从入门到精通不迷路!

2025-02-27 09:45:59 639

原创 网络热门SQL50题,每天5道(2月27号)(31-35)

SQL学习就像升级打怪,只有不断实战才能解锁新技能!今天我们继续攻克SQL50题中的第31-35题,用最通俗易懂的解析,带你轻松掌握复杂查询的奥秘!SQL 31——查询1990年出生的学生名单题目:找到所有1990年出生的学生信息。SELECT a.*思路拆解提取年份:用YEAR()函数从生日字段s_birth中提取年份(类似从蛋糕上切下蜡烛部分)。精准匹配:筛选出年份等于1990的记录(就像在日历上圈出所有1990年的日期)。小贴士:如果生日字段是字符串格式,需先转换为日期类型再提取年份。

2025-02-26 12:01:16 824

原创 数据结构-顺序表-代码实现(c语言版)

【代码】数据结构-顺序表-代码实现(c语言版)

2025-02-25 23:25:03 587

原创 网络热门sql50题,每天5道(2月26号)(26-30)

【代码】网络热门sql50题,每天5道(2月26号)(26-30)

2025-02-25 14:03:46 203

原创 网络热门sql50题,每天5道(2月21号)(21-25)

【代码】网络热门sql50题,每天5道(2月21号)(21-25)

2025-02-25 13:58:01 221

原创 网络热门sql50题,每天5道(2月20号)(16-20)

【代码】网络热门sql50题,每天5道(2月20号)(16-20)

2025-02-25 13:41:02 128

原创 网络热门sql50题,每天5道(2月19号)(11-15)

【代码】网络热门sql50题,每天5道(2月19号)(11-15)

2025-02-25 13:33:34 130

原创 网络热门sql50题,每天5道(2月18号)(6-10)

【代码】网络热门sql50题,每天5道(2月18号)

2025-02-25 13:28:24 220

原创 网络热门sql50题,每天5道(2月17号)(1-5)

【代码】网络热门sql50题,每天5道(2月17号)

2025-02-25 11:58:10 182

原创 网络热门sql50题,每天5道(准备阶段)

【代码】网络热门sql50题,每天5道(准备阶段)

2025-02-25 11:50:15 110

原创 20.有效的括号--力扣(LeetCode)--Java版

根据有序的括号必须遵循后进先出的原则,选择使用栈来灵活解决。好的到此今日的每天一道力扣结束啦,关注我,和我一起在力扣中成长吧!!![比心][比心]

2024-11-02 11:39:39 674

原创 14. 最长公共前缀--力扣(LeetCode)--Java版

1.方法思路:把第一个字符串看作公共前缀,因为最大的情况无非就是第一个字符串就是公共前缀,然后依次与剩下字符串比较,更新公共前缀,即可解答2..是String类的一个方法,用来查找指定子字符串str在目标字符串中首次出现的位置(索引)。3.substring(beginIndex,endIndex)用于提取字符串,在题中用于缩短公共前缀。

2024-10-29 08:56:47 616 1

空空如也

空空如也

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

TA关注的人

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