Leetcode
Jeremy爱编码
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode热题子集
返回该数组所有可能的子集(幂集)。原创 2025-12-29 23:02:18 · 190 阅读 · 0 评论 -
leetcode热题全排列
给定一个不含重复数字的数组。原创 2025-12-28 15:04:08 · 184 阅读 · 0 评论 -
实现 Trie (前缀树)
关键字:26位长的children数组,每个字符与'a'相减,然后放在对应索引上作为children,查找的时候是插入的逆过程,每个字符与'a'相减,得出索引,看索引是否有值。是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补全和拼写检查。(发音类似 "try")或者说。原创 2025-12-27 23:20:53 · 179 阅读 · 0 评论 -
leetcode课程表
解此题的关键把此题转化有向图,那些不依赖其他课程的入度就为0,从入度为0的入手,依次减少依赖此入度为0课程的入度,如果此依赖课程的入度也为0了,就看后面的依赖,直到所有的课程入度都为0。在选修某些课程之前需要一些先修课程。请你判断是否可能完成所有课程的学习?,表示如果要学习课程。原创 2025-12-27 22:03:44 · 184 阅读 · 0 评论 -
leetcode热题腐烂的橘子
直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。的新鲜橘子都会腐烂。原创 2025-12-27 19:16:39 · 212 阅读 · 0 评论 -
leetcode热题岛屿数量
岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。(水)组成的的二维网格,请你计算网格中岛屿的数量。此外,你可以假设该网格的四条边均被水包围。原创 2025-12-25 23:17:57 · 199 阅读 · 0 评论 -
二叉树的最近公共祖先
中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(2.如果左子树找到,右子树未找到(直接写成右子树为null,因为走到这里左子树不为null了)1.如果左子树未找到,返回了null,则返回右子树找的结果(不管是否为Null)3.走到这里,最后左右子树都找到了p,q,那么他们的root节点就是最近公共祖先。给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。的最近公共祖先是节点。原创 2025-12-15 22:37:16 · 226 阅读 · 0 评论 -
leetcode热题路径总和 III
不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。和等于 8 的路径有 3 条,如图所示。,求该二叉树里节点值之和等于。给定一个二叉树的根节点。原创 2025-12-14 11:29:26 · 233 阅读 · 0 评论 -
从前序与中序遍历序列构造二叉树
解题关键:构造中序hashMap<值,下标>, 前序列表中根节点的值在中序hashMap中得到中序下标,下标得出左子树的个数,右子树的个数,就可以确定左子树和右子树不断迭代的左右边界了。,请构造二叉树并返回其根节点。原创 2025-12-13 13:25:35 · 129 阅读 · 0 评论 -
二叉树展开为链表
【代码】二叉树展开为链表。原创 2025-11-30 17:43:41 · 191 阅读 · 0 评论 -
二叉树的右视图
想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。原创 2025-11-30 12:22:09 · 145 阅读 · 0 评论 -
二叉搜索树中第 K 小的元素
请你设计一个算法查找其中第。小的元素(从 1 开始计数)。给定一个二叉搜索树的根节点。方法二:记录子树的结点数。原创 2025-11-29 20:57:04 · 224 阅读 · 0 评论 -
leetcode验证二叉搜索树
先把最左节点压入栈,然后从最左节点中序遍历并比较大小,中序遍历是有序的。,判断其是否是一个有效的二叉搜索树。给你一个二叉树的根节点。原创 2025-11-25 08:08:09 · 179 阅读 · 0 评论 -
将有序数组转换为二叉搜索树
关键点:确定数组中间元素为父节点,类似于二分法,递归以父节点构造左子节点和右子节点。排列,请你将其转换为一棵 平衡 二叉搜索树。原创 2025-11-20 21:16:34 · 179 阅读 · 0 评论 -
二叉树的层序遍历
解此题的关键是要记录每层的节点数,然后从容器中拿出对应的节点数。(即逐层地,从左到右访问所有节点)。原创 2025-11-18 22:48:27 · 143 阅读 · 0 评论 -
leetcode二叉树的直径
3 ,取路径 [4,2,1,3] 或 [5,2,1,3] 的长度。这条路径可能经过也可能不经过根节点。是指树中任意两个节点之间最长路径的。给你一棵二叉树的根节点,返回该树的。由它们之间边数表示。原创 2025-11-17 22:24:24 · 107 阅读 · 0 评论 -
leetcode对称二叉树
给你一个二叉树的根节点。, 检查它是否轴对称。原创 2025-11-16 21:37:37 · 162 阅读 · 0 评论 -
leetcode翻转二叉树
关键逻辑:队列先进先出,从上到小,先把根节点放入队列,然后取出弹出根节点,交换左右节点,然后把左右节点放入队列,不断迭代,直到队列里没有节点。,翻转这棵二叉树,并返回其根节点。给你一棵二叉树的根节点。原创 2025-11-16 16:25:50 · 178 阅读 · 0 评论 -
leetcode二叉树的最大深度
逻辑:先把每一层所有节点放入容器中,记录深度1,一个一个的弹出,弹出的时候把下一层的节点依次放入容器中,上一层的全部弹出,然后只剩下下一层的,接着进行下一次的迭代。关系:maxDepth = Math.max(左子树的最大深度,右子树的最大深度)+1。原创 2025-11-16 11:52:07 · 231 阅读 · 0 评论 -
二叉树的中序遍历
前序遍历:根 左 右。中序遍历:左 根 右。后序遍历:左 右 根。原创 2025-11-16 10:39:59 · 93 阅读 · 0 评论 -
手写LRU 缓存
初始容量,每添加一个节点,就记录当前已添加的个数,如果添加之后已超过容量,则移除尾部的节点和hashMap里面的节点。要有一个双向链表,实现实现最近或刚添加的节点在头节点,要有一个hashMap存储节点,实现o(1)的查找。原创 2025-11-15 19:10:20 · 345 阅读 · 0 评论 -
合并K个排序链表
请你将所有链表合并到一个升序链表中,返回合并后的链表。给你一个链表数组,每个链表都已经按升序排列。原创 2025-11-15 12:40:23 · 72 阅读 · 0 评论 -
随机链表的复制
指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。节点组成,其中每个新节点的值都设为其对应的原节点的值。个节点组成的链表来表示输入/输出中的链表。方法一: hash表构建原链表和新链表中每个元素的映射。的链表,每个节点包含一个额外增加的随机指针。,该指针可以指向链表中的任何节点或空节点。那么在复制链表中对应的两个节点。例如,如果原链表中有。返回复制链表的头节点。原创 2025-11-08 16:48:00 · 148 阅读 · 0 评论 -
K 个一组翻转链表
首先遍历出有多少个节点,然后用节点数/k,就得到该作多少次翻转,每一次反转要记录反转后的头,尾节点,用头尾指针把反转后的头连起来,再重新更新头尾指针。是一个正整数,它的值小于或等于链表的长度。方法二:先不用计算有多少个节点,在循环从当前节点往后推k个节点。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。的整数倍,那么请将最后剩余的节点保持原有顺序。个节点一组进行翻转,请你返回修改后的链表。自己写的笨方法,但是却没有超时。原创 2025-11-02 19:03:37 · 200 阅读 · 0 评论 -
两两交换链表中的节点
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。原创 2025-10-19 17:24:00 · 193 阅读 · 0 评论 -
删除链表的倒数第 N 个结点
先反转链表,再找到第n-1个结点。令Node(n-1).next = Node(n-1).next.next。先让指针一移动n,然后两个指针一起移动,当指针一到尾部的时候,两个指针中间就相差n个节点。给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。原创 2025-10-12 18:30:37 · 202 阅读 · 0 评论 -
链表两数相加
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。的链表,表示两个非负的整数。它们每位数字都是按照。请你将两个数相加,并以相同形式返回一个表示和的链表。的方式存储的,并且每个节点只能存储。原创 2025-10-12 16:30:50 · 165 阅读 · 0 评论 -
合并两个有序链表
递归的原理就是我们从最后一个节点开始往回看,首先必定有一个节点的next先到达null,那么不为null的那个就是倒数第二大的.next,然后把倒数第二大的返回上一层,然后通过if..else找到倒数第三的,然后倒数第三大.next = 倒数第二大的,以此向上递归。新链表是通过拼接给定的两个链表的所有节点组成的。用一个额外的指针来重新调节它们的next。将两个升序链表合并为一个新的。原创 2025-09-27 13:20:15 · 105 阅读 · 0 评论 -
环形链表 II返回开始入环的节点
指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。如果链表中有某个节点,可以通过连续跟踪。链表中有一个环,其尾部连接到第二个节点。,返回链表开始入环的第一个节点。来表示链表尾连接到链表中的位置(,仅仅是为了标识链表的实际情况。返回索引为 1 的链表节点。给定一个链表的头节点。如果链表无环,则返回。,则在该链表中没有环。原创 2025-09-23 22:59:12 · 152 阅读 · 0 评论 -
leetcode热题环形链表
方法一:hash表,每循环一次就把节点放入hash表,如果下一个节点已经存在hash表中,则有环。指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。来表示链表尾连接到链表中的位置(索引从 0 开始)。// 快慢指针, 如果有环的话,快的一定会和慢的相遇。如果链表中有某个节点,可以通过连续跟踪。链表中有一个环,其尾部连接到第二个节点。仅仅是为了标识链表的实际情况。,判断链表中是否有环。给你一个链表的头节点。原创 2025-09-21 12:12:24 · 167 阅读 · 0 评论 -
Leetcode热题回文链表
请你判断该链表是否为回文链表。给你一个单链表的头节点。方法1:额外数组加双指针。方法二:翻转后半部分链表。原创 2025-09-20 16:24:28 · 240 阅读 · 0 评论 -
leetcode热题反转链表
请你反转链表,并返回反转后的链表。原创 2025-09-14 17:35:51 · 218 阅读 · 0 评论 -
leetcode热题相交链表
a+c+b=b+c+a, 则说明循环链表A、B,从头指针开始,然后分别循环对方的链表,则同时到达相交节点。,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回。假设链表A和链表B相交的部分为c, 不相交的部分长度分别为a,b。整个链式结构中不存在环。给你两个单链表的头节点。原创 2025-09-14 12:56:05 · 293 阅读 · 0 评论 -
搜索二维矩阵
因为此二维数组,从左到右和从上到下都是递增的,我们从右上角开始看,它左边的数比它小,右边(下边)的树比它在。编写一个高效的算法来搜索。原创 2025-09-07 12:44:57 · 137 阅读 · 0 评论 -
leetcode热题旋转图像
旋转图像,这意味着你需要直接修改输入的二维矩阵。请你将图像顺时针旋转 90 度。2 临时二维数组,先存各个下标转移后的数。使用另一个矩阵来旋转图像。原创 2025-09-06 22:06:20 · 195 阅读 · 0 评论 -
leetcode热题螺旋矩阵
思路:可以分成四部分,上,右,下,左,不断的上,下,右,左加入list中,直到达到跳出循环的条件,用四个变量记录各个面的开始索引,每循环一次就更新一次四个变量的值,同时判读4个变量是否已经达到跳出循环的条件(所有数的add进了list),返回矩阵中的所有元素。原创 2025-08-24 22:26:50 · 112 阅读 · 0 评论 -
leetcode热题矩阵置零
说明:首先我们想到的就是用2个变量记录行和列的下标,但用单个变量显然是不好记录的,所以我们可以用两个数组标记行和列为0的索引, 为什么要用两个数组呢,因为它们是相互独立的,比如说第一行标记为有0的了,但是是第几列呢,比如说是第三列,所以同时记录下第一行和第三列,循环到第二行了,行不满足,但第行的第个数,满足。,则将其所在行和列的所有元素都设为。的矩阵,如果一个元素为。原创 2025-08-23 17:19:49 · 344 阅读 · 0 评论 -
缺失的第一个正数
把数组的元素放入hash表中,然后循环1,2,3...n,如果不在hash表中,就是我们要找的值,如果循环完了还没有返回,那返回的就是n+1, n是数组的长度。,请你找出其中没有出现的最小的正整数。并且只使用常数级别额外空间的解决方案。范围 [1,2] 中的数字都在数组中。给你一个未排序的整数数组。方法二:将数组视为哈希表。请你实现时间复杂度为。原创 2025-08-14 22:06:17 · 113 阅读 · 0 评论 -
除自身以外数组的乘积
每一位后面的乘积 = 后后位的乘积*后面的值 f(i-1) = f(i)*nums[i]解法:两遍循环,第一遍算出每一位前面的乘积,每二遍从后面开始,依次算出每一位后面的乘积,前面的乘积等于前前位的乘积*前一位 f(i) = f(i-1)*nums[i-1]之中任意元素的全部前缀元素和后缀的乘积都在。之外其余各元素的乘积。时间复杂度内完成此题。原创 2025-08-13 12:12:44 · 190 阅读 · 0 评论 -
leetcode热题轮转数组
将数组中的元素向右轮转。方法二:数组多次翻转。原创 2025-08-12 11:10:13 · 121 阅读 · 0 评论
分享