![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
代码随想录-leetcode
代码随想录刷题
qq_42818497
这个作者很懒,什么都没留下…
展开
-
代码随想录算法训练营第四天|链表 24. 两两交换 19.删除倒数第n个 160.链表相交 142.环形链表
1. ->next (=null)访问到空指针没问题,但是 ->next->next(null->next) 访问空指针的next就不行了,会出现 member access within null pointer的问题。此题小心while循环里面, 判断条件,小心引用空指针,找好边界。1. 明天继续看一下 为什么n=1 ,n至少为1圈。复杂一点的双指针方法,学习思路。傻子选择直接两次遍历。原创 2024-06-08 22:28:08 · 140 阅读 · 0 评论 -
代码随想录算法训练营第七天|字符串 344.反转字符串 541. 反转字符串II 卡码网:54.替换数字
344.反转字符串比较简单。原创 2024-06-13 23:59:53 · 215 阅读 · 0 评论 -
代码随想录算法训练营第十七天| 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树
最大值下标:int maxPosition = max_element(v.begin(),v.end()) - v.begin();最大值:int maxValue = *max_element(v.begin(),v.end());2. vector容器取切片的方法。1. 偷懒直接用了内置的函数。700.二叉搜索树中的搜索。98.验证二叉搜索树。原创 2024-08-10 12:38:24 · 199 阅读 · 0 评论 -
代码随想录算法训练营第十五天| 110.平衡二叉树 257. 二叉树的所有路径 404.左叶子之和 222.完全二叉树的节点个数
2. 用层序遍历的时候,直接用队列,写的比之前熟练了一些。注意把左右孩子入队的时候,要考虑是不是null。7/1 补 6/20. 最近态度不太对,只想快点完成任务,没有认真弄明白每一题。1. 用递归法比较简单。把根结点加上的时候就是在计数。1. 比较好写,用到之前写的 二叉树的最大深度。明天写,看一下回溯怎么完成的。逻辑好复杂,看了题解才写出来。222.完全二叉树的节点个数。257. 二叉树的所有路径。原创 2024-07-01 23:31:16 · 198 阅读 · 0 评论 -
代码随想录算法训练营第三天|链表 203. 移除元素 707.设计链表 206.反转链表
1. 用while循环的时候,可以用边界点来确定循环条件,例如 在某点插入元素 ,把n=0 带进while循环试一下。4. 不要用private 的m_size遍历做循环条件,我劝你别乱用。2. 有index的,要检查一下 范围是否合规。3. 写的链表结构体,就是使用 虚拟头结点的。1. 没用pre,明天再写一遍。1. C++别忘了内存释放。2. 注意访问空指针的问题。原创 2024-06-07 23:04:08 · 203 阅读 · 0 评论 -
代码随想录算法训练营第二十二天| 77. 组合 216.组合总和III 538.把二叉搜索树转换为累加树 17.电话号码的字母组合
for是横向循环,确定1,2,3,4。递归是纵向的,在选到1之后,选出2,3,4。3. 剪枝操作比较复杂,核心是在选定了1之后减少操作,在for循环里面做。1. 和上一题差不多,改变一下递归的条件就可以了。1. 看讲解后写轮眼复刻。17.电话号码的字母组合。216.组合总和III。原创 2024-08-30 11:51:42 · 118 阅读 · 0 评论 -
代码随想录算法训练营第十四天| 226.翻转二叉树 101. 对称二叉树 104.二叉树的最大深度 111.二叉树的最小深度
和上一题有一些出入,需要考虑当某一边 为null的时候、正确写法:里面有一段比较两个二叉树是否相等的代码。104.二叉树的最大深度。111.二叉树的最小深度。6/30 补 6/19。遍历然后交换左右孩子。101. 对称二叉树。原创 2024-06-30 15:28:55 · 195 阅读 · 0 评论 -
代码随想录算法训练营第二十一天| 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树
1. 本来以为要分奇偶,后来发现不用,使用递归,每次都分成两半就可以了。需要考虑 nums.size()==0,因为如果数组长度是2的话,分开之后有 一半 的长度是0.2. 在分数组的时候,卡了一下。因为5/2==2 ,不是等于3. 这个是取整符,基本上没有能得到3 的操作。这里public里面的pre=0,是为了清空之前的pre值。1. 智障法 先变成数组,再通过数组里面查找index,重新遍历修改二叉树。对二叉搜索树中序遍历相当于 数组的正序遍历, 因此反中序遍历就相当于数组的 反着遍历。原创 2024-08-29 10:46:01 · 541 阅读 · 0 评论 -
代码随想录算法训练营第二十天| 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点
2. 注意左右子树都是一大串,不止一个单结点。左子树串在 右子树的最左边。(左子树串都比root小,root比右子树串小,右子树的左下角最小)1. 有返回值和无返回值的递归很不一样。这题的关键是有返回值,所以递归的时候让左子树等于 函数的返回值。3. 第一次使用auto,自动匹配类型,有点像golang里面的:=不想动脑子,沿用了 普通二叉树的 最近公共祖先,和昨天那题一样。1.需要考虑的情况很多,这种复杂的情况试着自己想一下,想完整。235. 二叉搜索树的最近公共祖先。450.删除二叉搜索树中的节点。原创 2024-08-27 10:56:11 · 219 阅读 · 0 评论 -
代码随想录算法训练营第十一天|二叉树 递归遍历 迭代遍历 层序遍历
1. 前序遍历和后序遍历的处理基本相似。前序遍历是中左右,后序遍历是左右中。后序遍历的时候调成 中右左,然后将结果反转就可以了。1. 递归遍历如果会写的话,比较省事。比较重要的是别忘了递归的终止条件。有点数学题中是n=0或者1,有的情况是 指针为空。一直找左子树的左子树,找到最左。处理完了之后,再处理中和右。当处理到最右边,cur已经空了,但是此时栈里还有值,即使while的循环条件。1. 直接输出比较好些,一行一行的按照容器输入,设计了size的方法。2. 二维数组里面的每个元素是一个一维数组。原创 2024-06-20 16:33:41 · 144 阅读 · 0 评论 -
代码随想录算法训练营第五天|哈希表 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和
今天光速学习了 数组,set,map的相关操作,然后才做题。数组的操作都要忘干净了。常用操作如下: 查找用的很多,查找的返回是迭代器。删除没怎么用。原创 2024-06-11 17:00:36 · 156 阅读 · 1 评论 -
代码随想录算法训练营第一天|数组 704.二分查找 27.移除元素
移除元素 双指针法 第二次写,一点印象都没有了。原创 2024-06-05 21:15:20 · 146 阅读 · 0 评论 -
代码随想录算法训练营第六天|哈希表 454.四数相加II 383. 赎金信 【15*】. 三数之和 【18*】. 四数之和
454.四数相加IImap的初始化疑惑。原创 2024-06-12 11:19:43 · 290 阅读 · 0 评论 -
代码随想录算法训练营第十九天| 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先
1. 这题的关键在于二叉搜索树的中序遍历就是 有序序列。530.二叉搜索树的最小绝对差。236. 二叉树的最近公共祖先。501.二叉搜索树中的众数。1. 使用map来统计频率。原创 2024-08-26 11:32:32 · 313 阅读 · 0 评论 -
代码随想录算法训练营第十天|栈与队列 150. 逆波兰表达式求值
1. C++中 没有 int( "3"+"+"+"4"),不合法,C++中没有字符串相加再计算的操作,忘记是哪个语言的特性了。2. stoll 将字符串转换成 long long 型。150. 逆波兰表达式求值。原创 2024-06-17 23:20:40 · 136 阅读 · 0 评论 -
代码随想录算法训练营第二天|数组 977. 有序数组平方 209.长度最小子数组 59.螺旋矩阵
for循环的循环条件和初始值是有关系的,写的时候要么确定循环次数要么确定终止值。)这种循环写法循环了n次,但是注意初始值变化后,就不是n次了。容易惯性,刻舟求剑。使用滑动窗口的时候,确定好窗口的起始和终止。滑动窗口的起始位置可以减少重复计算前面的值。滑动窗口的灵魂在于起始位置和终止位置都很灵活。原创 2024-06-06 15:07:00 · 167 阅读 · 0 评论 -
代码随想录算法训练营第八天|字符串 151.翻转字符串里的单词 卡码网:55.右旋转字符串
1. 和151的思路一样,先 整体反转,再部分反转。复杂的字符串反转可以考虑这个思路。1. 复习了 移除元素中的双指针法, 本题的双指针解法改天再看,猪脑过载。2. s.erase()的使用不熟悉。原创 2024-06-14 22:00:49 · 365 阅读 · 0 评论 -
代码随想录算法训练营第九天|栈与队列 232.用栈实现队列 225. 用队列实现栈 20. 有效的括号 1047. 删除字符串中的所有相邻重复项
232.用栈实现队列。原创 2024-06-16 21:03:22 · 440 阅读 · 0 评论 -
代码随想录算法训练营第十六天| 110.平衡二叉树 257. 二叉树的所有路径 404.左叶子之和 106.从中序与后序遍历序列构造二叉树
106. 从中序与后序遍历序列构造二叉树注意:1. vector的构造函数使用迭代器的时候是左闭右开,最常见的( s.begin(),s.end())就不包括end(),end()迭代器是空的2. 使用到的另一个vector的函数是 resize()。不能直接vector.size()= n 去改变size大小。原创 2024-08-07 09:42:14 · 221 阅读 · 0 评论