12 2023 档案

摘要:一、513.找树左下角的值 题目链接: LeetCode 513.找树左下角的值 学习前: 思路: 层序遍历。采用递归和迭代两种方式 递归:定义最大深度和目标值两个成员变量,方法参数是结点和当前结点的深度;返回类型为void;终止条件为结点为空;单次循环内容为判断该节点是否符合目标要求,且分别传入左 阅读全文
posted @ 2023-12-31 22:31 amulet 阅读(4) 评论(0) 推荐(0) 编辑
摘要:一、110.平衡二叉树 题目链接: LeetCode 110.平衡二叉树 学习: 思路: 后序遍历。实际上是由叶结点到根结点,若有一颗子树不是平衡二叉树,则直接返回给根结点 二、257.二叉树的所有路径 题目链接: LeetCode 257.二叉树的所有路径 学习: 思路: 递归+回溯。因为是线=先 阅读全文
posted @ 2023-12-29 21:53 amulet 阅读(3) 评论(0) 推荐(0) 编辑
摘要:一、104.二叉树的最大深度 题目链接: LeetCode 104. 二叉树的最大深度 学习: 思路: 分别求左子树和右子树的高度,返回给根结点,加1之后是根结点的深度,这是后序遍历的思路 二、559.n叉树的最大深度 题目链接: LeetCode 559. N 叉树的最大深度 学习前: 思路: 后 阅读全文
posted @ 2023-12-28 20:41 amulet 阅读(11) 评论(0) 推荐(0) 编辑
摘要:一、二叉树层序遍历 题目链接: LeetCode 102. 二叉树的层序遍历 LeetCode 107. 二叉树的层序遍历 II LeetCode 199. 二叉树的右视图 LeetCode 637. 二叉树的层平均值 LeetCode 429. N 叉树的层序遍历 LeetCode 515. 在每 阅读全文
posted @ 2023-12-27 20:40 amulet 阅读(4) 评论(0) 推荐(0) 编辑
摘要:一、二叉树理论基础 学习: 1. 从二叉树是否包含数值进行分类: 无数值:完全二叉树和满二叉树 有数值的:二叉搜索树和平衡二叉搜索树(AVL,Adelson-Velsky and Landis)。其中二叉搜索树指数值按照从小到大的顺序是左子树<根结点<右子树,平衡指的是左右子树高度差不超过1 2. 阅读全文
posted @ 2023-12-26 22:56 amulet 阅读(4) 评论(0) 推荐(0) 编辑
摘要:一、239. 滑动窗口最大值 题目链接: LeetCode 239. 滑动窗口最大值 学习前: 思路: 无 学习后: 自定义双端队列,实现push、pop、peek方法,使得队列单调非增。peek方法不变;当入队时,若当前元素比队尾元素大,则pop队尾,直到队列为空或当前元素不大于队尾元素;当出队时 阅读全文
posted @ 2023-12-25 22:24 amulet 阅读(3) 评论(0) 推荐(0) 编辑
摘要:一、20. 有效的括号 题目链接: LeetCode 20. 有效的括号 学习前: 思路: 当前元素为左括号,直接入栈 当前元素为右括号,若找到对应的左括号匹配,则循环继续;反之返回false 若栈为空,返回true;反之false 时间复杂度:O(n) 空间复杂度:O(n) 学习后: 采用入栈右括 阅读全文
posted @ 2023-12-23 21:25 amulet 阅读(4) 评论(0) 推荐(0) 编辑
摘要:一、栈与队列理论基础 学习: 1. 定义 栈先进后出 队列先进先出 2. 底层实现 均可以通过数组或链表进行实现 二、232.用栈实现队列 题目链接: LeetCode 232.用栈实现队列 学习前: 思路: 无 学习后: 不同方法有部分功能实现是一致的,则可以进行抽象提取,实现复用性 两个栈实现队 阅读全文
posted @ 2023-12-22 20:11 amulet 阅读(4) 评论(0) 推荐(0) 编辑
摘要:一、344.反转字符串 题目链接: LeetCode 344.反转字符串 学习前: 思路: 相向指针。left=0,right=length-1,不停交换left和right的值 时间复杂度:O(n) 空间复杂度:O(1) 学习后: 了解swap函数通过位运算实现的方式 二、541.反转字符串II 阅读全文
posted @ 2023-12-20 22:07 amulet 阅读(5) 评论(0) 推荐(0) 编辑
摘要:一、454.四数相加II 题目链接: LeetCode 454.四数相加II 学习前: 思路: 首先定义两个HashMap对象record12和record34,对应的key存放两个数组元素的和,value存放计算的和出现的次数 接着遍历record12,若record存在与之和为0的元素,则计算两 阅读全文
posted @ 2023-12-19 20:46 amulet 阅读(4) 评论(0) 推荐(0) 编辑
摘要:一、哈希表理论基础 学习: 1. 哈希法 当需要查询一个元素是否出现过,或者一个元素是否在集合里,首选哈希法 2. 实现哈希法的3种数据结构 数组:在哈希值个数比较小且范围可采用 集合:在哈希值个数或者范围较大时可采用 map:当既需要key,又要value时可采用 二、242.有效的字母异位词 题 阅读全文
posted @ 2023-12-18 22:14 amulet 阅读(4) 评论(0) 推荐(0) 编辑
摘要:一、LeetCode 142.环形链表II 自己再根据思路把代码独立写了一遍,并对照参考代码查漏补缺,进一步优化 二、206.反转链表 掌握2种递归写法,并用代码实现 从后向前遍历的递归,有点绕,多花了点时间理解 三、LeetCode 24. 两两交换链表中的节点 掌握递归写法,并用代码实现 再先理 阅读全文
posted @ 2023-12-17 20:46 amulet 阅读(5) 评论(0) 推荐(0) 编辑
摘要:一、24. 两两交换链表中的节点 题目链接: LeetCode 24. 两两交换链表中的节点 学习前: 思路: 未新增虚拟结点。节点数为0,1,2需要另外讨论。当节点数>=2时,返回的head值为第2个节点,需要3个指针first、second、prev,分别是第一个节点和第二个节点,以及第一个节点 阅读全文
posted @ 2023-12-16 22:53 amulet 阅读(7) 评论(0) 推荐(0) 编辑
摘要:一、链表理论基础 学习: 1. 链表定义 线性表的一种存储方式,在逻辑上连续的数据在物理存储中可以不连续。 class ListNode { int val; ListNode next; ListNode() { } ListNode(int val) { this.val = val; this 阅读全文
posted @ 2023-12-15 20:33 amulet 阅读(5) 评论(0) 推荐(0) 编辑
摘要:一、977.有序数组的平方 题目链接: LeetCode 977. 有序数组的平方 学习前: 思路: 双向指针。left是从左往右遍历数组,right是从优往左遍历数组,将left和right中绝对值较大数的平方从右往左放入新数组中;新思路:if(left+right>=0)right,else l 阅读全文
posted @ 2023-12-14 20:57 amulet 阅读(3) 评论(0) 推荐(0) 编辑
摘要:一、数组理论基础 学习前: 1. 数组定义 一些在内存上连续存储的相同数据类型的数据的集合 2. 数组特征 便于查询数组元素,不便于增删数据元素 学习后: 对于Java,二维数组不一定在内存上连续。如int[i][j],唯一确定的是int[i][]在内存上连续 二、704. 二分查找 LeetCod 阅读全文
posted @ 2023-12-13 20:45 amulet 阅读(6) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示