自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录算法训练营第18天|513.找树左下角的值/112.路径总和/106.从中序和后序遍历序列构造二叉树

513.找树左下角的值最底层最左侧的节点的值 层序遍历:迭代法 递归+回溯:如何找到左下角? 最后一行:深度最大的叶子节点 最左侧:前、中、后序都可(不用处理中节点)(只要优先遍历左边即可)112.路径总和不涉及中节点的处理逻辑:前、中、后序都可 遇到一个节点相减,到叶子节点减为0了,就找到了 回溯:把减去的节点加回来,再去遍历右子树106.从中序和后序遍历序列构造二叉树后序数组为空,空节点 后序数组中最后一个元素为节点元素 寻找中序数组位置作为切割

2024-03-23 16:45:01 177

原创 代码随想录算法训练营第17天|110.平衡二叉树/257.二叉树的所有路径/404.左叶子之和

平衡二叉树:二叉树中任意一个节点的左、右子树的高度差小于等于1求高度:后序遍历。

2024-03-23 14:30:03 178

原创 代码随想录算法训练营第16天|104.二叉树的最大深度/111.二叉树的最小深度/222.完全二叉树的节点个数

根节点的高度就是二叉树的最大深度(所以用后序)

2024-03-21 17:25:19 244 1

原创 代码随想录算法训练营第15天|二叉树的层序遍历/226.翻转二叉树/101.对称二叉树

二叉树的层序遍历队列:放入一个元素,弹出它时,将它的左、右孩子加入队列 队列的size为每一层的元素个数 结果用二维数组保存 力扣题目:102、107、199、637、429、515、116、117、104、111226.翻转二叉树交换指针,而不是交换数值 遍历方式:用前序和后序;用中序比较绕、不方便 递归:​​​​​​参数:传入的根节点 返回值:根节点 终止条件:碰到空节点停止遍历 单层处理逻辑: 交换节点的两个孩子 再向左、向右去遍历​​​​​​​101.对称二叉树

2024-03-20 19:53:35 264 1

原创 代码随想录算法训练营第14天|二叉树的递归遍历/二叉树的迭代遍历/二叉树的统一迭代

144.二叉树的前序遍历145.二叉树的后序遍历94.二叉树的中序遍历。

2024-03-19 09:39:59 278 1

原创 代码随想录算法训练营第13天|239.滑动窗口最大值/347.前K个高频元素

239.滑动窗口最大值滑动窗口像一个队列 向右滑一位时:抛弃的元素就pop(),新加入的元素就push() 自定义队列: 只维护有可能成为最大值的值 加入一个数时,弹出它前面比它小的所有数 这样求最大值即是队头的元素 347.前K个高频元素map: key:每个元素 value:每个元素出现的次数 但没必要对每个元素都进行排序 只求前K个:大顶堆、小顶堆 堆里面最终只剩下前K个高频元素:小顶堆

2024-03-18 15:00:33 161

原创 代码随想录算法训练营第11天|20.有效的括号/1047.删除字符串中的所有相邻重复项/150.逆波兰表达式求值

20.有效的括号遇到左括号,把对应右括号入栈 遇到右括号,判断是否与栈顶括号相等 剪枝:括号数量为奇数时,则一定不匹配 三种无效的情况:

2024-03-16 15:40:54 230 1

原创 代码随想录算法训练营第10天|232.用栈实现队列/225.用队列实现栈

用两个栈:入栈出栈:一旦队列要弹出,把入栈里的元素全部放到出栈里。

2024-03-16 14:34:03 139 1

原创 代码随想录算法训练营第9天|28.找出字符串中第一个匹配项的下标/459.重复的子字符串

KMP算法,多加理解。

2024-03-14 16:11:47 203

原创 代码随想录算法训练营第8天|344.反转字符串/541.反转字符串2/54.替换数字/151.翻转字符串里的单词 /55.右旋转字符串

都是 2k、2k 地操作,不写 i++,而是 i += 2k,让 i 以 2k 的距离去移动,反转前 k 个。(同向双指针不会改变顺序,相向双指针会改变顺序)先反转整个字符串,再反转每个单词。(第1天数组中的27.移除元素)151.翻转字符串里的单词。慢指针:保留的元素更新在哪里。单独处理:首单词前不用空格。卡码网:54.替换数字。快指针:哪些元素要保留。

2024-03-13 19:51:40 178

原创 代码随想录算法训练营第7天|454.四数相加/383. 赎金信/15.三数之和/18.四数之和

只需一个map:遍历a+b:存入map中,a+b的值(key)以及出现的次数(value)遍历c+d:判断"0 -(c+d)"在map中出现过没有。

2024-03-12 11:34:15 401 2

原创 代码随想录算法训练营第6天|242.有效的字母异位词//349.两个数组的交集/202.快乐数/1.两数之和

数组”第1个字符串:对应的频率+1第2个字符串:对应的频率-1最后数组中元素全是0则互为字母异位词。

2024-03-12 09:53:25 102 1

原创 代码随想录算法训练营第4天|24.两两交换链表的节点/19.删除链表的倒数第N个节点/142.环形链表

两两交换:节点总数是奇数还是偶数?

2024-03-09 15:57:09 278

原创 代码随想录算法训练营第3天| 203.移除链表元素/707.设计链表/206.反转链表

太绕了暂时没搞明白,熟练掌握双指针再掌握循环;循环是根据双指针来写的。法一:双指针,一个指针指着结点,另一个指针指着前一个结点。

2024-03-08 19:21:02 188

原创 代码随想录算法训练营第2天| 977.有序数组的平方/209.最小长度的子数组/59.螺旋矩阵

错误原因:result.reverse()不会创建新的列表。

2024-03-07 16:59:01 298

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

关键:在同一代码中,搜索区间的定义要一致 (合法区间)(循环不变量原则)决定: (1)right = numsize ; left <= right ; left = middle + 1 ; right = middle - 1 (2) right = numsize - 1 ; left < right ; left = middle ; right = middle1.暴力解法:嵌套循环时间复杂度:O(n^2)空间复杂度:O(1)2.双指针法:时间复杂度:O(n)空间复杂度:O(1)改进:题目说

2024-03-06 20:38:15 344

空空如也

空空如也

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

TA关注的人

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