- 博客(25)
- 收藏
- 关注
原创 代码随想录算法训练营第三十天| LeetCode122 买卖股票的最佳时机II、LeetCode55 跳跃游戏 、LeetCode45 跳跃游戏II、LeetCode1005 K次取反后最大化的数组和
【代码】代码随想录算法训练营第三十天| LeetCode122 买卖股票的最佳时机II、LeetCode55 跳跃游戏 、LeetCode45 跳跃游戏II、LeetCode1005 K次取反后最大化的数组和。
2024-06-23 12:36:28
147
原创 代码随想录算法训练营第二十九天| LeetCode455 分发饼干、LeetCode376 摆动序列 、LeetCode53 最大子序和
【代码】代码随想录算法训练营第二十九天| LeetCode455 分发饼干、LeetCode376 摆动序列 、LeetCode53 最大子序和。
2024-06-20 20:36:38
219
原创 代码随想录算法训练营第二十八天| LeetCode491 递增子序列、LeetCode46 全排列、LeetCode47 全排列 II
【代码】代码随想录算法训练营第二十八天| LeetCode491 递增子序列、LeetCode46 全排列、LeetCode47 全排列 II。
2024-06-19 19:30:35
187
原创 代码随想录算法训练营第二十七天| LeetCode93 复原IP地址、LeetCode78 子集、LeetCode90 子集II
注意区间选取,还有就是isValid函数中将字符串转为数字要注意int类型不够大,要使用long。注意收割结果的时机,因为是每个节点都要收割,所以递归一开始就是收割结果的时候。
2024-06-18 19:52:44
238
原创 代码随想录算法训练营第二十六天| LeetCode39 组合总和、LeetCode40 组合总和II、LeetCode131 分割回文串
去重操作很精彩,注意区分树层去重和树枝去重。
2024-06-17 18:30:37
155
原创 代码随想录算法训练营第二十四天| LeetCode77 组合 、LeetCode216 组合总和III、LeetCode17 电话号码的字母组合
【代码】代码随想录算法训练营第二十四天| LeetCode77 组合 、LeetCode216 组合总和III、LeetCode17 电话号码的字母组合。
2024-06-16 22:17:54
282
原创 代码随想录算法训练营第二十三天| LeetCode669 修剪二叉搜索树、LeetCode108 将有序数组转换为二叉搜索树、LeetCode538 把二叉搜索树转换为累加树
【代码】代码随想录算法训练营第二十二天| LeetCode669 修剪二叉搜索树、LeetCode108 将有序数组转换为二叉搜索树、LeetCode538 把二叉搜索树转换为累加树。
2024-06-15 16:08:31
255
原创 代码随想录算法训练营第二十二天| LeetCode235 二叉搜索树的最近公共祖先 、LeetCode701 二叉搜索树中的插入操作 、LeetCode450 删除二叉搜索树中的节点
【代码】代码随想录算法训练营第二十二天| LeetCode235 二叉搜索树的最近公共祖先 、LeetCode701 二叉搜索树中的插入操作 、LeetCode450 删除二叉搜索树中的节点。
2024-06-13 20:52:19
175
1
原创 代码随想录算法训练营第二十一天| LeetCode530 二叉搜索树的最小绝对差 、LeetCode501 二叉搜索树中的众数 、LeetCode236 二叉树的最近公共祖先
体会更新maxCount时对数组的操作。依然是中序遍历加双指针的思想。
2024-06-12 17:04:08
127
原创 代码随想录算法训练营第二十天| LeetCode654 最大二叉树 、LeetCode617 合并二叉树 、LeetCode700 二叉搜索树中的搜索 、LeetCode98 验证二叉搜索树
本题操作两个二叉树,比较简单。二叉搜索树的题目一般使用中序。构造二叉树一般选用前序遍历。
2024-06-12 09:24:52
150
原创 代码随想录算法训练营第十八天| LeetCode513 找树左下角的值 、LeetCode112 路径总和 、LeetCode106 从中序与后序遍历序列构造二叉树
两种方法迭代和递归,迭代很好理解,层序遍历,遍历到最后一层找到第一个就可以,递归法注意回溯过程。注意比较两道题不同,一个需要返回值,一个不需要。
2024-06-09 21:20:47
193
原创 代码随想录算法训练营第十七天| LeetCode110 平衡二叉树 、LeetCode257 二叉树的所有路径、LeetCode404 左叶子之和
遍历顺序依然为后序,如果左右孩子不为平衡二叉树,直接返回-1,如果当前节点的左右孩子高度差大于1,直接返回-1。遍历顺序为后序遍历,注意左叶子的判定条件。
2024-06-07 19:16:05
269
原创 代码随想录算法训练营第十六天| LeetCode104 二叉树的最大深度 、LeetCode111 二叉树的最小深度、LeetCode222 完全二叉树的节点个数
遍历顺序为后序遍历,实际上求的是根节点的高度,同时也是二叉树的最大深度。注意如果有孩子为空节点的话,要特殊处理一下。
2024-06-07 19:09:42
160
原创 代码随想录算法训练营第十五天| LeetCode102 层序遍历 、LeetCode226 翻转二叉树、LeetCode101 对称二叉树
注意理解为什么中序遍历不能套用这个代码。通过一个辅助队列去遍历二叉树。
2024-06-05 19:58:55
164
原创 代码随想录算法训练营第十四天| 二叉树的前中后序遍历
注意中序遍历迭代法和其他不一样,三种递归法都相似,换一下顺序就可以。后序遍历和前序遍历迭代法类似。两种方法,递归法和迭代法。
2024-06-04 18:54:56
149
原创 代码随想录算法训练营第十三天| LeetCode239 滑动窗口最大值 、LeetCode347 前 K 个高频元素
大体思路就是维护一个单调队列,滑动窗口新加入的元素如果大于队尾元素,则移除队尾元素,这样每次滑动窗口移动完之后,队头元素就是该滑动窗口中的最大值。使用优先级队列模拟小顶堆,具体实现看代码,代码写了注释。
2024-06-03 17:50:22
203
原创 代码随想录算法训练营第十一天| LeetCode20 有效的括号 、LeetCode1047 删除字符串中的所有相邻重复项、LeetCode150 逆波兰表达式求值
思想不难,注意减法和除法要单独处理一下,容易出错。使用字符串模拟栈可以省去将栈转为字符串的操作。注意搞清楚三种情况,代码就比较好写了。
2024-06-01 17:26:05
263
原创 代码随想录算法训练营第十天| LeetCode232 用栈实现队列 、LeetCode225 用队列实现栈
【代码】代码随想录算法训练营第十天| LeetCode232 用栈实现队列 、LeetCode225 用队列实现栈。
2024-05-31 10:51:44
214
原创 代码随想录算法训练营第八天| LeetCode344 反转字符串 、LeetCode541 反转字符串II 、卡码网:54.替换数字 、LeetCode151翻转字符串里的单词、卡码网:55.右旋转
数组填充问题一般是从后往前,这样不需要对其他元素进行后移的操作。先整体反转一次,然后反转前k个,最后其他元素再反转一次。这道题大体思想不难,但是比较考察细节,考察代码能力。这题比较基础,在后边的题中可以当作函数直接调用。
2024-05-30 16:29:16
199
原创 代码随想录算法训练营第七天| LeetCode454 四数相加II 、LeetCode383 赎金信 、LeetCode15 三数之和 、LeetCode18 四数之和
跟两数之和类似,使用HashMap,将前两个数组相加的结果存到哈希表中,遍历后两个数组看有没有符合条件的。容易想到用哈希,实际上双指针法更为简单明了,需要注意三个指针所指元素的去重操作,有很多细节。跟有效的字母异位词同一个解法。跟三数之和类似,注意去重操作。
2024-05-28 18:03:41
210
原创 代码随想录算法训练营第六天| LeetCode242 有效的字母异位词 、LeetCode349 两个数组的交集、LeetCode202 快乐数 、LeetCode1 两数之和
使用HashSet,不要忘了函数的返回值是数组,最后将集合转为数组。跟上一题类似,只不过这道题先写一个函数用来获取下一个num的值。使用HashMap存储键值对,要搞清楚键和值分别对应什么。使用哈希数组的原因是数据量是有限的。
2024-05-27 18:15:25
148
原创 代码随想录算法训练营第四天| LeetCode24 交换链表节点、LeetCode19 删除倒数第N个节点、LeetCode160 链表相交、LeetCode142 环形链表
快指针先移动n+1位置,之后一起移动,当快指针指向空指针的时候,慢指针指向倒数第n+1个元素,然后就可以删除倒数第n个元素,画图模拟一下很清晰。两个指针最终走过的路程相等,如果有相同节点就会相遇。文章讲的很详细,搞清楚原理写代码就很简单了。注意链表操作时不要让链表断开。
2024-05-25 21:41:10
250
原创 代码随想录算法训练营第三天| LeetCode203 移除链表元素、LeetCode707 设计链表、LeetCode206 反转链表
心得:使用虚拟头节点可以使两端的节点一般化。心得:熟悉了链表的常用基本操作。
2024-05-24 21:01:27
146
原创 代码随想录算法训练营第二天| LeetCode977 有序数组的平方、LeetCode209 长度最小的子数组、LeetCode59 螺旋矩阵
思路:快指针从头依次向后移动,直到窗口内的和大于等于目标值,然后收缩慢指针,从而得到最小的窗口长度。思路:从两端向中间靠拢,因为最大值只可能出现在两端,然后从末尾开始填充新数组。心得:之前没有做过螺旋矩阵的题目,很有收获,注意边界值的问题就不容易出错了。方法:上右下左循环填充,收缩边界。
2024-05-23 20:48:47
218
2
原创 代码随想录算法训练营第一天| LeetCode704 二分查找、LeetCode27 移除元素
快指针用来寻找新数组中的元素,即不等于val的元素,慢指针指向新数组的末尾用于添加新元素,时间复杂度为O(n)使用两个for循环,时间复杂度为O(n^2)
2024-05-22 14:22:49
247
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人