- 博客(49)
- 收藏
- 关注
原创 【算法 day15】LeetCode 654 最大二叉树 | 617.合并二叉树 | 700.二叉搜索树中的搜索 |23.验证是否是二叉搜索树
654 最大二叉树构造最大二叉树,首先需要找到根节点,然后再递归构造左右子树,所以使用前序遍历需要一个值去记录最大值,需要一个变量去计算当前最大值的下标 先找到最大值,创建根节点 递归遍历最大值的左右区间,去创建根节点的左右子树 遵循[左闭右开)原则 返回根节点617.合并二叉树 1.思路: 合并两颗二叉树上的值,如果同一位置都有值则相加,否则就保持原数据 使用前序遍历,从根节点开始操作 root1为空就返回root2,root2为空就返回root1 无需要
2025-07-07 14:43:47
202
原创 【算法 day14】LeetCode 找树左下角的值 | 路径总和 | 从中序与后序遍历序列构造二叉树
找树左下角的值路径总和 1.思路: 前中后序均可 递归三要素:1.请求参数是 根节点,目标值 2.递归终止条件 3.单层递归逻辑: 借助map集合存放中序集合中的数据,key是值,value是数组下标 递归确定:1.确定参数和返回值 ,返回值是构造的二叉树根节点,请求参数是中序数组,中序数组起始下标,后序数组
2025-07-06 19:39:12
560
原创 【算法 day13】LeetCode 110.平衡二叉树 | 257. 二叉树的所有路径| 404.左叶子之和 |222.完全二叉树的节点个数
110.平衡二叉树(后序)题目链接 | 文档讲解 |视频讲解 :平衡二叉树:每个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。
2025-07-01 13:55:42
403
原创 【算法 day12】LeetCode 226.翻转二叉树 |101. 对称二叉树 |104.二叉树的最大深度|111.二叉树的最小深度
翻转的是指针,不是数值 前序遍历和后序遍历都可以 中序不行,中序遍历的顺序是左中右,反转左指针后,到根节点,在反转右节点(此时的右节点就是原先的左节点),真正的右节点没有被处理2.举例:101. 对称二叉树(后序) 1.思路:1.二叉树是否是对称二叉树,要比较的是左右子树是不是可以相互翻转,比较的是2棵树,所说递归遍历要同时遍历两颗树2.判断的情况分为下面几种: 如果左子树为空,右子树不为空 返回false 如果右子树为空,左子树不为空 返回false
2025-06-26 14:39:49
937
原创 【算法 day09】LeetCode 232.用栈实现队列 | 225. 用队列实现栈 | 20. 有效的括号 |1047. 删除字符串中的所有相邻重复项
使用2个栈去实现队列 先将元素放入栈1中,然后在将栈1中的元素出栈到栈2中,栈2的元素出栈顺序就和队列的出队一样225. 用队列实现栈 1.思路: 使用2个队列实现,一个用于保持与栈的出入顺序一致 q1,另一个用于辅助q2 push():利用两个队列,完成元素的倒腾,使得新加入的元素称为栈顶 pop(): 由于push的时候已经与栈顺序元素一致,直接返回队首即可 top(): 同上 empty() :只
2025-06-24 15:32:06
810
原创 【算法 day08】LeetCode 151.翻转字符串里的单词 |卡码网:55.右旋转字符串
1.去除字符串头尾的空格 trim2.对字符串进行分割,split3.创建StringBuilder sb,遍历集合,中间是空格就不做处理,非空格sb拼接单词后,添加空格,最后一遍历不需要添加空格4.返回字符串1.先将整个字符串反转 2.反转前k个字符 3.反转k后面的字符串 1.思路: 使用现有的方法,字符串中substring方法,区间范围是左闭右开
2025-06-20 17:53:57
253
原创 【算法 day07】LeetCode 344.反转字符串 | 541. 反转字符串II | 卡码网:54.替换数字
本文摘要: 文章介绍了三个字符串处理问题的解法: 反转字符串(344题):使用双指针法,left从0开始,right从末尾开始,交换字符直到相遇; 反转字符串II(541题):每2k个字符反转前k个,剩余不足k个时全部反转,使用for循环每次步进2k; 替换数字(卡码网54题):遍历字符串,用StringBuilder将数字替换为"number",提供三种判断数字的方法。 核心思想是双指针法和分段处理字符串,代码简洁高效。
2025-06-19 10:53:29
432
原创 【算法 day06】LeetCode 454.四数相加II | 15. 三数之和 | 18. 四数之和
本文介绍了三种求和问题的解法:1)四数相加II使用哈希表存储前两数组之和的频率,再在后两数组中查找互补值;2)三数之和通过排序+双指针法,需注意去重和提前终止条件;3)四数之和扩展为双层循环+双指针,处理负数时需特别判断。三种方法都利用了排序预处理和双指针优化,其中四数问题需考虑负数相加的特殊情况。代码实现均采用Java,包含详细注释说明关键步骤和边界条件处理。
2025-06-18 15:34:17
327
原创 【算法 day05】LeetCode 242.有效的字母异位词 | 349. 两个数组的交集 | 202. 快乐数 |1. 两数之和
242.有效的字母异位词 349. 两个数组的交集 1.思路: 求的是数组的交集,而且同一元素只出现一次,考虑使用set集合 先判断2个集合的合法性 先对数组1进行去重操作,将其遍历放入set集合中 遍历数组2,如果数组2中的元素在set集合中存在,新建一个set集合res,将元素放入,这个集合中的数据就是最后的结果集 将set集合转成int数组 2.问题: res用数组行不行? 不行,因为返回的相同元素必须保证唯一性,比如set集合中有1,
2025-06-16 18:25:15
414
原创 【算法 day04】LeetCode 24. 两两交换链表中的节点 | 19.删除链表的倒数第N个节点 | 142.环形链表II |面试题 02.07. 链表相交
本文总结了三个链表操作问题的解法:1)两两交换节点:使用虚拟头节点和移动指针,通过记录临时节点完成相邻节点的交换;2)删除倒数第N个节点:采用快慢指针法,快指针先移动n+1步(包含虚拟节点),然后同步移动直至快指针为null,慢指针即指向待删除节点的前驱;3)环形链表检测:快慢指针相遇判定有环,相遇后将慢指针重置到头节点,两指针同速移动再次相遇点即为环入口。文中强调虚拟节点对链表增删改操作的重要性,并指出双指针在特定场景中的有效性。每个解法都附有详细的思路分析和代码实现。
2025-06-16 12:46:12
1056
原创 【算法 day03】LeetCode 203.移除链表元素 | 707.设计链表 | 206.反转链表
本文总结了链表操作的常见方法与实现:1. 链表元素删除:通过虚拟头节点统一处理头节点和非头节点删除操作,避免特殊判断;2. 链表设计实现:详细说明了头部插入、尾部插入、指定位置插入和删除等操作的实现细节;3. 链表反转:采用快慢指针方法实现链表反转,重点分析了指针移动顺序和终止条件。文章提供了完整的代码实现,并强调了链表操作中需要注意的指针处理和边界条件。通过虚拟头节点可以简化操作,而快慢指针则是解决链表问题的有效方法。
2025-06-15 12:08:28
723
原创 【算法 day02】LeetCode 209.长度最小的子数组 | 59.螺旋矩阵II
本文解析了两道数组相关算法题: 长度最小的子数组(滑动窗口解法) 使用滑动窗口寻找满足sum≥target的最短连续子数组 定义左右指针,当sum满足条件时收缩左边界 时间复杂度O(n),空间复杂度O(1) 螺旋矩阵II(模拟填充解法) 按顺时针方向分层填充n×n矩阵 每层处理四条边(左→右、上→下、右→左、下→上) 注意边界条件和奇数n的中心点处理 时间复杂度O(n²),空间复杂度O(1) 两道题都体现了数组操作中的指针技巧和边界控制,其中螺旋矩阵的填充逻辑较为复杂,需要特别注意循环条件和坐标变化。
2025-06-13 09:58:54
496
原创 【算法 day01】LeetCode 704二分查找 | 27移除元素 | 977有序数组的平方
本文介绍了三道数组算法题的解法:704二分查找、27移除元素和977有序数组的平方。对于704题,详细讲解了暴力解法(O(n))和两种二分法实现(左闭右闭和左闭右开,均为O(logn))。27题通过快慢指针原地修改数组,达到移除指定元素的目的(O(n))。977题利用双指针从两端向中间遍历,将平方后的元素从大到小填充到新数组中(O(n))。三道题都强调了时间复杂度优化的重要性,并提供了清晰的代码实现和思路解析。
2025-06-11 16:41:19
1013
原创 Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1473; XML document structures mus
mybatis xml文件报错
2023-08-11 16:45:36
773
原创 Mysql Workbench 导出的csv文件转成excel文件
Workbench 导出的csv文件转成excel文件 csv文件数据太长展示成科学计数法 时间数据不展示秒
2023-07-26 18:20:20
1421
原创 Workbench 导出数据
1.3选择表结构以及导出数据,还是结构,还是两者皆有。1.4选择导出的文件个数,以及存放地址。一.导出数据库表结构和数据。
2023-07-26 17:55:27
1585
原创 线程异步 ThreadUtil.execAsync()导致文件上传报NoSuchFileException
线程异步 ThreadUtil.execAsync导致文件上传报NoSuchFileException
2023-03-20 11:37:35
2137
原创 collect(Collectors.toMap(k,v))报空指针异常
collect(Collectors.toMap(k,v))报空指针异常
2023-01-12 18:24:14
1477
原创 数组转List集合报错java.lang.UnsupportedOperationException
数组转List集合报错java.lang.UnsupportedOperationException
2022-12-09 15:21:24
416
原创 mybatis异常:The content of elements must consist of well-formed character data or markup的解决方法
mybatis异常:The content of elements must consist of well-formed character data or markup的解决方法
2022-11-05 20:53:09
990
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1