![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
代码随想录算法训练营每日笔记
文章平均质量分 54
heitong_fu
这个作者很懒,什么都没留下…
展开
-
代码随想录算法训练营第十五天| 层序遍历 ● 226.翻转二叉树 ● 101.对称二叉树
因为我们要比较的是根节点的两个子树是否是相互翻转的,进而判断这个树是不是对称树,所以要比较的是两个树,参数自然也是左子树节点和右子树节点。此时才进入单层递归的逻辑,单层递归的逻辑就是处理 左右节点都不为空,且数值相同的情况。● 比较二叉树外侧是否对称:传入的是左节点的左孩子,右节点的右孩子。● 如果左右都对称就返回true ,有一侧不对称就返回false。翻转二叉树,即在每次递归时将左右子树进行互换。遍历方式是前序遍历。● 比较内侧是否对称,传入左节点的右孩子,右节点的左孩子。原创 2024-01-25 18:53:52 · 1192 阅读 · 0 评论 -
代码随想录算法训练营第七天| 454.四数相加II 、 383. 赎金信、 15. 三数之和 、18. 四数之和
map(映射)、双指针、三数之和、四数之和、剪枝去重。原创 2024-01-17 18:57:36 · 1853 阅读 · 0 评论 -
代码随想录算法训练营第四天| 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点面试题 02.07. 链表相交、142.环形链表II
文档讲解:三指针,快慢指针,链表相交,环形链表。原创 2024-01-13 22:49:02 · 1489 阅读 · 0 评论 -
代码随想录算法训练营第三天| 203.移除链表元素 、707.设计链表 、 206.反转链表
文档讲解:双指针(左右指针),滑动窗口。原创 2024-01-12 23:57:21 · 1317 阅读 · 0 评论 -
代码随想录算法训练营第十四天| 递归遍历 ● 迭代遍历 ● 统一迭代
递归遍历、层序遍历。原创 2024-01-24 19:01:15 · 1135 阅读 · 0 评论 -
代码随想录算法训练营第十天|232.用栈实现队列、225. 用队列实现栈
外) 重新添加到队列尾部,此时再去弹出元素就是栈的顺序。原创 2024-01-19 20:58:22 · 1372 阅读 · 0 评论 -
代码随想录算法训练营第六天| 哈希表理论基础、242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
常见的三种哈希结构:vector数组、set (集合)、map(映射)原创 2024-01-15 21:08:27 · 1338 阅读 · 0 评论 -
代码随想录算法训练营第八天| 344.反转字符串、541. 反转字符串II、卡码网:54.替换数字 、 151.翻转字符串里的单词、卡码网:55.右旋转字符串
双指针、三数之和、四数之和、剪枝去重最重要的收获是如何适当的去重。原创 2024-01-17 22:47:58 · 1247 阅读 · 0 评论 -
代码随想录算法训练营第九天|28. 实现 strStr() 、459.重复的子字符串
双倍字符串的解法:字符串为s,将s+s得到双倍字符串,使用find()函数从下标为1的位置开始查找,若存在循环则会返回s以内字符的下标;否则返回第二个s的首字符下标。1、暴力:将长字符串的每个字符开头的子字符串(长度为短字符串的长度)遍历与短字符串比较。时间复杂度由string的find的时间复杂度决定,好像不同版本的编译器实现算法不同。2、KMP(在一个长串中查找是否出现过另一个串)时间复杂度:O(nm)原创 2024-01-19 19:35:05 · 1366 阅读 · 0 评论 -
代码随想录算法训练营第十六天| 104.二叉树的最大深度 ● 111.二叉树的最小深度 ● 222.完全二叉树的节点个数
每遍历到一个新节点,先分别递归向左遍历和递归向右遍历的深度,若递归向左遍历的深度等于递归向右遍历的深度,则以该节点作为根节点的二叉树(前提是完全二叉树)是满二叉树,节点数=2^深度 -1;●二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数或者节点数(取决于高度从0开始还是从1开始)●二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数或者节点数(取决于深度从0开始还是从1开始)若递归向左遍历的深度等于递归向右遍历的深度,则以该节点作为根节点的二叉树(前提是完全二叉树)是满二叉树。原创 2024-01-25 19:16:32 · 1451 阅读 · 0 评论 -
代码随想录算法训练营第十三天| 239. 滑动窗口最大值 、347.前 K 个高频元素
栈 以下题目主要是利用栈的特性注意事项:1、要确定栈非空才能访问栈顶元素,否则越界。原创 2024-01-23 19:05:17 · 1321 阅读 · 0 评论 -
代码随想录算法训练营第五天| 总结数组专题
有序:考虑二分、双指针连续子数组、子序列:考虑滑动窗口模拟:坚持循环变量不变原则,更新每圈的初始位置和每圈的四条边长度。原创 2024-01-14 12:06:33 · 434 阅读 · 0 评论 -
代码随想录算法训练营第十一天| 20. 有效的括号 、 1047. 删除字符串中的所有相邻重复项 、150. 逆波兰表达式求值
栈 以下题目主要是利用栈的特性注意事项:1、要确定栈非空才能访问栈顶元素,否则越界。原创 2024-01-20 20:16:23 · 1154 阅读 · 0 评论 -
代码随想录算法训练营第二十七天补|39. 组合总和 ● 40.组合总和II ● 131.分割回文串
组合问题:集合内元素的组合,不同集合内元素的组合分割问题:本质还是组合问题,注意一下如何分割字符串。原创 2024-02-27 20:57:25 · 392 阅读 · 0 评论 -
代码随想录算法训练营第二十八天补|93.复原IP地址 ● 78.子集 ● 90.子集II
组合问题:集合内元素的组合,不同集合内元素的组合分割问题:本质还是组合问题,注意一下如何分割字符串。原创 2024-03-01 11:18:26 · 484 阅读 · 0 评论 -
代码随想录算法训练营第二十二天|235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点
235. 二叉搜索树的最近公共祖先发现规律:当我们从上向下去递归遍历,第一次遇到 cur节点是数值在[p, q]区间中,那么cur就是p和q的最近公共祖先。class Solution {public: TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { if(root == NULL) return NULL; if((p->val >= r原创 2024-02-01 18:27:41 · 1233 阅读 · 0 评论 -
代码随想录算法训练营第二十五天补|216.组合总和III ● 17.电话号码的字母组合
组合问题:集合内元素的组合,不同集合内元素的组合。原创 2024-02-25 17:06:17 · 294 阅读 · 0 评论 -
代码随想录算法训练营第二十三天补|669. 修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● 538.把二叉搜索树转换为累加树
平衡树、二叉树、灵活应用中序遍历(值大小有序)原创 2024-02-23 10:50:22 · 184 阅读 · 0 评论 -
代码随想录算法训练营第十八天| 513.找树左下角的值 ● 112. 路径总和 ● 106.从中序与后序遍历序列构造二叉树
层序遍历。原创 2024-01-28 18:35:47 · 380 阅读 · 0 评论 -
代码随想录算法训练营第二十四天补|● 回溯理论基础 ● 77. 组合
回溯原创 2024-02-24 09:29:13 · 429 阅读 · 0 评论 -
代码随想录算法训练营第十七天| 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和
栈 以下题目主要是利用栈的特性注意事项:1、要确定栈非空才能访问栈顶元素,否则越界。原创 2024-01-26 22:35:42 · 896 阅读 · 0 评论 -
代码随想录算法训练营第二十天| ● 654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● 98.验证二叉搜索树
层序遍历、回溯·、由两种遍历序列逆推二叉树。原创 2024-01-30 19:16:09 · 1235 阅读 · 0 评论 -
代码随想录算法训练营第二十一天| 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先
二叉搜索树:中序序列严格递增。原创 2024-01-31 16:38:04 · 1068 阅读 · 0 评论 -
代码随想录算法训练营第二天| 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II。
文档讲解:双指针(左右指针),滑动窗口。原创 2024-01-12 00:10:11 · 1252 阅读 · 0 评论 -
代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。
二分查找、快慢指针原创 2024-01-10 23:21:39 · 1321 阅读 · 0 评论