自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录算法训练营第三十天| LeetCode122 买卖股票的最佳时机II、LeetCode55 跳跃游戏 、LeetCode45 跳跃游戏II、LeetCode1005 K次取反后最大化的数组和

【代码】代码随想录算法训练营第三十天| LeetCode122 买卖股票的最佳时机II、LeetCode55 跳跃游戏 、LeetCode45 跳跃游戏II、LeetCode1005 K次取反后最大化的数组和。

2024-06-23 12:36:28 140

原创 代码随想录算法训练营第二十九天| LeetCode455 分发饼干、LeetCode376 摆动序列 、LeetCode53 最大子序和

【代码】代码随想录算法训练营第二十九天| LeetCode455 分发饼干、LeetCode376 摆动序列 、LeetCode53 最大子序和。

2024-06-20 20:36:38 214

原创 代码随想录算法训练营第二十八天| LeetCode491 递增子序列、LeetCode46 全排列、LeetCode47 全排列 II

【代码】代码随想录算法训练营第二十八天| LeetCode491 递增子序列、LeetCode46 全排列、LeetCode47 全排列 II。

2024-06-19 19:30:35 179

原创 代码随想录算法训练营第二十七天| LeetCode93 复原IP地址、LeetCode78 子集、LeetCode90 子集II

注意区间选取,还有就是isValid函数中将字符串转为数字要注意int类型不够大,要使用long。注意收割结果的时机,因为是每个节点都要收割,所以递归一开始就是收割结果的时候。

2024-06-18 19:52:44 232

原创 代码随想录算法训练营第二十六天| LeetCode39 组合总和、LeetCode40 组合总和II、LeetCode131 分割回文串

去重操作很精彩,注意区分树层去重和树枝去重。

2024-06-17 18:30:37 152

原创 代码随想录算法训练营第二十四天| LeetCode77 组合 、LeetCode216 组合总和III、LeetCode17 电话号码的字母组合

【代码】代码随想录算法训练营第二十四天| LeetCode77 组合 、LeetCode216 组合总和III、LeetCode17 电话号码的字母组合。

2024-06-16 22:17:54 271

原创 代码随想录算法训练营第二十三天| LeetCode669 修剪二叉搜索树、LeetCode108 将有序数组转换为二叉搜索树、LeetCode538 把二叉搜索树转换为累加树

【代码】代码随想录算法训练营第二十二天| LeetCode669 修剪二叉搜索树、LeetCode108 将有序数组转换为二叉搜索树、LeetCode538 把二叉搜索树转换为累加树。

2024-06-15 16:08:31 245

原创 代码随想录算法训练营第二十二天| LeetCode235 二叉搜索树的最近公共祖先 、LeetCode701 二叉搜索树中的插入操作 、LeetCode450 删除二叉搜索树中的节点

【代码】代码随想录算法训练营第二十二天| LeetCode235 二叉搜索树的最近公共祖先 、LeetCode701 二叉搜索树中的插入操作 、LeetCode450 删除二叉搜索树中的节点。

2024-06-13 20:52:19 174 1

原创 代码随想录算法训练营第二十一天| LeetCode530 二叉搜索树的最小绝对差 、LeetCode501 二叉搜索树中的众数 、LeetCode236 二叉树的最近公共祖先

体会更新maxCount时对数组的操作。依然是中序遍历加双指针的思想。

2024-06-12 17:04:08 121

原创 代码随想录算法训练营第二十天| LeetCode654 最大二叉树 、LeetCode617 合并二叉树 、LeetCode700 二叉搜索树中的搜索 、LeetCode98 验证二叉搜索树

本题操作两个二叉树,比较简单。二叉搜索树的题目一般使用中序。构造二叉树一般选用前序遍历。

2024-06-12 09:24:52 149

原创 代码随想录算法训练营第十八天| LeetCode513 找树左下角的值 、LeetCode112 路径总和 、LeetCode106 从中序与后序遍历序列构造二叉树

两种方法迭代和递归,迭代很好理解,层序遍历,遍历到最后一层找到第一个就可以,递归法注意回溯过程。注意比较两道题不同,一个需要返回值,一个不需要。

2024-06-09 21:20:47 190

原创 代码随想录算法训练营第十七天| LeetCode110 平衡二叉树 、LeetCode257 二叉树的所有路径、LeetCode404 左叶子之和

遍历顺序依然为后序,如果左右孩子不为平衡二叉树,直接返回-1,如果当前节点的左右孩子高度差大于1,直接返回-1。遍历顺序为后序遍历,注意左叶子的判定条件。

2024-06-07 19:16:05 260

原创 代码随想录算法训练营第十六天| LeetCode104 二叉树的最大深度 、LeetCode111 二叉树的最小深度、LeetCode222 完全二叉树的节点个数

遍历顺序为后序遍历,实际上求的是根节点的高度,同时也是二叉树的最大深度。注意如果有孩子为空节点的话,要特殊处理一下。

2024-06-07 19:09:42 157

原创 代码随想录算法训练营第十五天| LeetCode102 层序遍历 、LeetCode226 翻转二叉树、LeetCode101 对称二叉树

注意理解为什么中序遍历不能套用这个代码。通过一个辅助队列去遍历二叉树。

2024-06-05 19:58:55 158

原创 代码随想录算法训练营第十四天| 二叉树的前中后序遍历

注意中序遍历迭代法和其他不一样,三种递归法都相似,换一下顺序就可以。后序遍历和前序遍历迭代法类似。两种方法,递归法和迭代法。

2024-06-04 18:54:56 145

原创 代码随想录算法训练营第十三天| LeetCode239 滑动窗口最大值 、LeetCode347 前 K 个高频元素

大体思路就是维护一个单调队列,滑动窗口新加入的元素如果大于队尾元素,则移除队尾元素,这样每次滑动窗口移动完之后,队头元素就是该滑动窗口中的最大值。使用优先级队列模拟小顶堆,具体实现看代码,代码写了注释。

2024-06-03 17:50:22 201

原创 代码随想录算法训练营第十一天| LeetCode20 有效的括号 、LeetCode1047 删除字符串中的所有相邻重复项、LeetCode150 逆波兰表达式求值

思想不难,注意减法和除法要单独处理一下,容易出错。使用字符串模拟栈可以省去将栈转为字符串的操作。注意搞清楚三种情况,代码就比较好写了。

2024-06-01 17:26:05 252

原创 代码随想录算法训练营第十天| LeetCode232 用栈实现队列 、LeetCode225 用队列实现栈

【代码】代码随想录算法训练营第十天| LeetCode232 用栈实现队列 、LeetCode225 用队列实现栈。

2024-05-31 10:51:44 206

原创 代码随想录算法训练营第八天| LeetCode344 反转字符串 、LeetCode541 反转字符串II 、卡码网:54.替换数字 、LeetCode151翻转字符串里的单词、卡码网:55.右旋转

数组填充问题一般是从后往前,这样不需要对其他元素进行后移的操作。先整体反转一次,然后反转前k个,最后其他元素再反转一次。这道题大体思想不难,但是比较考察细节,考察代码能力。这题比较基础,在后边的题中可以当作函数直接调用。

2024-05-30 16:29:16 191

原创 代码随想录算法训练营第七天| LeetCode454 四数相加II 、LeetCode383 赎金信 、LeetCode15 三数之和 、LeetCode18 四数之和

跟两数之和类似,使用HashMap,将前两个数组相加的结果存到哈希表中,遍历后两个数组看有没有符合条件的。容易想到用哈希,实际上双指针法更为简单明了,需要注意三个指针所指元素的去重操作,有很多细节。跟有效的字母异位词同一个解法。跟三数之和类似,注意去重操作。

2024-05-28 18:03:41 207

原创 代码随想录算法训练营第六天| 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 243

原创 代码随想录算法训练营第三天| LeetCode203 移除链表元素、LeetCode707 设计链表、LeetCode206 反转链表

心得:使用虚拟头节点可以使两端的节点一般化。心得:熟悉了链表的常用基本操作。

2024-05-24 21:01:27 139

原创 代码随想录算法训练营第二天| LeetCode977 有序数组的平方、LeetCode209 长度最小的子数组、LeetCode59 螺旋矩阵

思路:快指针从头依次向后移动,直到窗口内的和大于等于目标值,然后收缩慢指针,从而得到最小的窗口长度。思路:从两端向中间靠拢,因为最大值只可能出现在两端,然后从末尾开始填充新数组。心得:之前没有做过螺旋矩阵的题目,很有收获,注意边界值的问题就不容易出错了。方法:上右下左循环填充,收缩边界。

2024-05-23 20:48:47 216 2

原创 代码随想录算法训练营第一天| LeetCode704 二分查找、LeetCode27 移除元素

快指针用来寻找新数组中的元素,即不等于val的元素,慢指针指向新数组的末尾用于添加新元素,时间复杂度为O(n)使用两个for循环,时间复杂度为O(n^2)

2024-05-22 14:22:49 241

空空如也

空空如也

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

TA关注的人

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