自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录算法训练营第二十天| 654. 最大二叉树、617. 合并二叉树、700. 二叉搜索树中的搜索、98. 验证二叉搜索树

654. 最大二叉树654. 最大二叉树看视频前自己搞定啦617. 合并二叉树700. 二叉搜索树中的搜索这就决定了,二叉搜索树,递归遍历和迭代遍历和普通二叉树都不一样。本题,其实就是在二叉搜索树中搜索一个节点。那么我们来看看应该如何遍历。

2023-10-07 21:10:05 40 1

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

看到说迭代法简单一些,就自己用迭代法做了,之后有空再来补上递归法。

2023-09-25 12:24:52 51 1

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

自己先做了一遍,考虑到后序遍历时,一检测到有左右子树高度之差大于1就可以直接返回false,但因为是递归法这个循环跳不出去,所以想了个办法直接标记此时的高度为负数,由于题目中说“树中的节点数在范围。代码随想录里说明了如何直接返回左右子树不平衡的情况,加入一个判断式直接返回-1。内”,所以这里直接返回了-5000,保证最终的返回值也小于0。还不太理解为什么把找父节点放在后序遍历的左和右之间。257. 二叉树的所有路径。110. 平衡二叉树。110. 平衡二叉树。404. 左叶子之和。

2023-09-23 16:55:12 48 1

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

104. 二叉树的最大深度104. 二叉树的最大深度求解高度应该是后序遍历,求解深度应该是前序遍历而根节点的高度就是二叉树的最大深度559. n叉树的最大深度【相关练习】111. 二叉树的最小深度题目给的最小深度的定义:最小深度是从根节点到最近叶子节点的最短路径上的节点数量。叶子节点是指没有子节点的节点。222. 完全二叉树的节点个数。

2023-09-21 20:30:03 41

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

层序遍历的时候,判断是否遍历到单层的最后面的元素,如果是,就放进result数组中,随后返回result就可以了。自己做没想出来,力扣上的中等题就没想到了。翻转二叉树就是以中轴线两两交换左右孩子。这个自己一遍就写出来了。

2023-09-20 12:14:30 149 1

原创 代码随想录算法训练营第十四天| 二叉树的理论基础、递归遍历、迭代遍历、统一迭代

int val;

2023-09-19 18:41:40 36 1

原创 代码随想录算法训练营第十三天| 239. 滑动窗口最大值、347. 前 K 个高频元素、71.简化路径

239. 滑动窗口最大值239. 滑动窗口最大值【思路】滑动窗口与队列属性接近,避免在滑动窗口内再次遍历增加时间复杂度单调队列模拟过程那么这个维护元素单调递减的队列就叫做双端队列:最大值放在出口,push元素大于入口元素时,从入口弹出该元素347. 前 K 个高频元素。

2023-09-18 20:42:01 58 1

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

第三种情况:遍历字符串匹配的过程中,栈已经为空了,没有匹配的字符了,说明右括号没有找到对应的左括号,return false。第一种情况:已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以return false。第二种情况:遍历字符串匹配的过程中,发现栈里没有要匹配的字符,所以return false。第一种情况,字符串里左方向的括号多余了 ,所以不匹配。第二种情况,括号没有多余,但是 括号的类型没有匹配上。第三种情况,字符串里右方向的括号多余了,所以不匹配。

2023-09-17 15:47:29 36 1

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

【思路】两个栈:一个输入栈,一个输出栈。

2023-09-17 14:33:59 34 1

原创 代码随想录算法训练营第九天| 28. 实现 strStr()、459. 重复的子字符串

next数组就是一个前缀表(prefix table)前缀表是用来回退的,它记录了模式串与主串(文本串)不匹配的时候,模式串应该从哪里开始重新匹配。例如:要在文本串:aabaabaafa 中查找是否出现过一个模式串:aabaaf。可以看出,文本串中第六个字符b 和 模式串的第六个字符f,不匹配了。如果暴力匹配,发现不匹配,此时就要从头匹配了。但如果使用前缀表,就不会从头匹配,而是从上次已经匹配的内容开始匹配,找到了模式串中第三个字符b继续开始匹配。此时就要问了前缀表是如何记录的呢?

2023-09-14 20:15:17 81 1

原创 代码随想录算法训练营第八天| 344. 反转字符串、541. 反转字符串II、剑指Offer 05.替换空格、151. 翻转字符串里的单词、剑指Offer58-II.左旋转字符串

可以直接用swap交换。

2023-09-13 15:52:04 40

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

在本题的情况下,使用map的空间消耗要比数组大一些的,而且还要做哈希函数,是费时的!数据量大的话就能体现出来差别了。所以数组更加简单直接有效!【双指针法:由于不需要返回下标,可以先对数组进行排序】242.有效的字母异位词 是一个思路。【题目要求去重,求解时一定注意去重】【三元组里的元素是可以重复的】【延续了三数之和的思路】

2023-09-12 22:27:30 35 1

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

【昨天第五天周末休息】

2023-09-11 21:47:15 44

原创 代码随想录算法训练营第四天 | 24. 两两交换链表中的节点、19. 删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II

要把当前操作的节点和交换后的下次节点存为tmp。

2023-09-09 19:29:33 57

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

/ 单链表int val;// 节点上存储的元素// 指向下一个节点的指针ListNode(int x) : val(x), next(NULL) {} // 节点的构造函数。

2023-09-08 17:57:43 25

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

题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台文章讲解:代码随想录视频讲解: 双指针法经典题目 | LeetCode:977.有序数组的平方_哔哩哔哩_bilibili这个时间复杂度是 O(n + nlogn), 可以说是O(nlogn)的时间复杂度,但为了和下面双指针法算法时间复杂度有鲜明对比,记为 O(n + nlog n)。双指针思路:最大元素一定是在两边时间复杂度是 O(n)题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台文章讲解:代码随想录

2023-09-07 21:32:37 1518

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

C++打卡学习第一天!代码随想录C++中的和是两种不同的数据结构,它们在很多方面都有区别。下面是它们之间的一些主要区别:大小可变性:内存管理:传递给函数:性能:综上所述,如果需要动态大小、灵活性和方便的内存管理,通常是更好的选择。如果需要固定大小的数组,并且性能很重要,可以考虑使用。在C++中二维数组的空间地址在内存中是连续分布的题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台文章讲解:代码随想录视频讲解:手把手带你撕出正确的二分法 | 二分查找法 | 二分搜索法 | LeetCode

2023-09-06 18:36:14 1867 1

空空如也

空空如也

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

TA关注的人

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