
秋季每日一题2024
文章平均质量分 82
秋季每日一题2024
sweetheart7-7
学习笔记
展开
-
LeetCode17. 电话号码的字母组合(2024秋季每日一题 59)
给定一个仅包含数字 `2-9` 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。原创 2024-11-06 22:13:32 · 491 阅读 · 0 评论 -
LeetCode78. 子集(2024秋季每日一题 58)
给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的 子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。原创 2024-11-05 21:22:48 · 396 阅读 · 0 评论 -
LeetCode46. 全排列(2024秋季每日一题 57)
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。原创 2024-11-04 21:20:40 · 1130 阅读 · 0 评论 -
LeetCode208. 实现 Trie (前缀树)(2024秋季每日一题 56)
Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补全和拼写检查。 请你实现 Trie 类: - Trie() 初始化前缀树对象。 - void insert(String word) 向前缀树中插入字符串 word 。 - boolean search(String word) 如果字符串 word 在前缀树中,返回 true(即,在检索之前已经插入);否则,返回 false 。 - boolean star原创 2024-11-03 11:55:43 · 673 阅读 · 0 评论 -
LeetCode207. 课程表(2024秋季每日一题 55)
你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。 例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1 。 请你判断是否可能完成所有课程的学习?如果可以,返回 true ;否则,返回 false 。原创 2024-11-02 11:42:56 · 715 阅读 · 0 评论 -
LeetCode994. 腐烂的橘子(2024秋季每日一题 54)
在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: - 值 0 代表空单元格; - 值 1 代表新鲜橘子; - 值 2 代表腐烂的橘子。 每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返回 直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 `-1` 。原创 2024-11-01 22:34:02 · 940 阅读 · 0 评论 -
LeetCode200. 岛屿数量(2024秋季每日一题 53)
给你一个由 `'1'`(陆地)和 `'0'`(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。原创 2024-10-31 20:00:00 · 514 阅读 · 1 评论 -
LeetCode124. 二叉树中的最大路径和(2024秋季每日一题 52)
二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root ,返回其 最大路径和 。原创 2024-10-30 22:34:37 · 203 阅读 · 0 评论 -
LeetCode236. 二叉树的最近公共祖先(2024秋季每日一题 51)
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”原创 2024-10-28 21:22:26 · 645 阅读 · 0 评论 -
LeetCode437. 路径总和 III(2024秋季每日一题 50)
给定一个二叉树的根节点 `root` ,和一个整数 `targetSum` ,求该二叉树里节点值之和等于 `targetSum `的 路径 的数目。 路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。原创 2024-10-27 16:32:28 · 1094 阅读 · 0 评论 -
LeetCode105. 从前序与中序遍历序列构造二叉树(2024秋季每日一题 49)
给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。原创 2024-10-26 11:02:08 · 961 阅读 · 0 评论 -
LeetCode114. 二叉树展开为链表(2024秋季每日一题 48)
给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。 展开后的单链表应该与二叉树 先序遍历 顺序相同。原创 2024-10-26 10:40:00 · 866 阅读 · 0 评论 -
LeetCode199. 二叉树的右视图(2024秋季每日一题 47)
给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。输入: [1,2,3,null,5,null,4]二叉树的节点个数的范围是 [0,100]输入: [1,null,3]输出: [1,3,4]原创 2024-10-24 22:26:00 · 488 阅读 · 0 评论 -
LeetCode230. 二叉搜索树中第 K 小的元素(2024秋季每日一题 46)
给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。原创 2024-10-23 21:47:01 · 868 阅读 · 0 评论 -
LeetCode98. 验证二叉搜索树(2024秋季每日一题 45)
给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: - 节点的左子树只包含 小于 当前节点的数。 - 节点的右子树只包含 大于 当前节点的数。 - 所有左子树和右子树自身必须也是二叉搜索树。原创 2024-10-22 21:43:38 · 822 阅读 · 0 评论 -
LeetCode108. 将有序数组转换为二叉搜索树(2024秋季每日一题 44)
给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 平衡 二叉搜索树。原创 2024-10-21 21:47:32 · 1333 阅读 · 0 评论 -
LeetCode102. 二叉树的层序遍历(2024秋季每日一题 43)
给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。原创 2024-10-20 14:42:24 · 739 阅读 · 0 评论 -
LeetCode543. 二叉树的直径(2024秋季每日一题 42)
给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。原创 2024-10-19 10:54:26 · 447 阅读 · 0 评论 -
LeetCode101. 对称二叉树(2024秋季每日一题 41)
给你一个二叉树的根节点 root , 检查它是否轴对称。原创 2024-10-18 22:33:34 · 262 阅读 · 0 评论 -
LeetCode226. 翻转二叉树(2024秋季每日一题 40)
给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]输入:root = [2,1,3]输入:root = []输出:[2,3,1]原创 2024-10-17 20:57:43 · 373 阅读 · 0 评论 -
LeetCode104. 二叉树的最大深度(2024秋季每日一题 39)
给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。原创 2024-10-16 21:28:15 · 373 阅读 · 0 评论 -
LeetCode94. 二叉树的中序遍历(2024秋季每日一题 38)
给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。原创 2024-10-15 21:20:54 · 371 阅读 · 0 评论 -
LeetCode146. LRU 缓存(2024秋季每日一题 37)
请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。 void put(int key, int value) 如果关键字 key 已经存在,则变更其数据值 value ;如果不存在,则向缓存中插入该组 key-value 。如果插入操作导致关键字原创 2024-10-15 21:14:18 · 1459 阅读 · 0 评论 -
LeetCode23. 合并 K 个升序链表(2024秋季每日一题 36)
给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。原创 2024-10-12 22:49:32 · 1032 阅读 · 0 评论 -
LeetCode148. 排序链表(2024秋季每日一题 35)
给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。原创 2024-10-11 21:30:03 · 466 阅读 · 0 评论 -
LeetCode138. 随机链表的复制(2024秋季每日一题 34)
给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 ==深拷贝==。 深拷贝应该正好由 `n` 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点 。 例如,如果原链表中有 `X` 和 `Y` 两个节点,其中 `X.random --> Y原创 2024-10-10 23:12:34 · 607 阅读 · 0 评论 -
LeetCode25. K 个一组翻转链表(2024秋季每日一题 33)
给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。原创 2024-10-09 22:00:26 · 769 阅读 · 0 评论 -
LeetCode24. 两两交换链表中的节点(2024秋季每日一题 32)
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。链表中节点的数目在范围 [0, 100] 内。输入:head = [1,2,3,4]输入:head = [1]输出:[2,1,4,3]输入:head = []原创 2024-09-30 13:35:13 · 547 阅读 · 0 评论 -
LeetCode19. 删除链表的倒数第 N 个结点(2024秋季每日一题 31)
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。输入:head = [1,2,3,4,5], n = 2。输入:head = [1,2], n = 1。输入:head = [1], n = 1。你能尝试使用一趟扫描实现吗?输出:[1,2,3,5]链表中结点的数目为 sz。原创 2024-09-29 21:59:38 · 1081 阅读 · 0 评论 -
LeetCode2. 两数相加(2024秋季每日一题 30)
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。原创 2024-09-28 15:37:31 · 293 阅读 · 0 评论 -
LeetCode21. 合并两个有序链表(2024秋季每日一题 29)
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。输入:l1 = [1,2,4], l2 = [1,3,4]输入:l1 = [], l2 = [0]输入:l1 = [], l2 = []输出:[1,1,2,3,4,4]两个链表的节点数目范围是。均按 非递减顺序 排列。原创 2024-09-27 22:07:23 · 396 阅读 · 0 评论 -
LeetCode142. 环形链表 II(2024秋季每日一题 28)
给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。给定一个链表的头节点 head ,返回链表开始入环的第一个节点。原创 2024-09-26 21:12:03 · 740 阅读 · 0 评论 -
LeetCode141. 环形链表(2024秋季每日一题 27)
给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果链表中存在环 ,则返回 true。输入:head = [3,2,0,-4], pos = 1。给你一个链表的头节点 head ,判断链表中是否有环。输入:head = [1,2], pos = 0。解释:链表中有一个环,其尾部连接到原创 2024-09-25 21:38:47 · 604 阅读 · 0 评论 -
LeetCode234. 回文链表(2024秋季每日一题 26)
给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true;否则,返回 false。你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?解法一:通过数组记录,然后遍历判断是否回文。链表中节点数目在范围[1, 105] 内。输入:head = [1,2,2,1]输入:head = [1,2]原创 2024-09-24 23:15:22 · 483 阅读 · 0 评论 -
LeetCode206. 反转链表(2024秋季每日一题 25)
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。输入:head = [1,2,3,4,5]输入:head = [1,2]输出:[5,4,3,2,1]输入:head = []链表中节点的数目范围是。原创 2024-09-23 21:17:50 · 521 阅读 · 0 评论 -
LeetCode160. 相交链表(2024秋季每日一题 24)
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 `c1` 开始相交:原创 2024-09-22 16:35:43 · 968 阅读 · 0 评论 -
LeetCode240. 搜索二维矩阵 II(2024秋季每日一题 23)
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。原创 2024-09-21 11:49:03 · 1177 阅读 · 0 评论 -
LeetCode48. 旋转图像(2024秋季每日一题 22)
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]原创 2024-09-20 23:35:55 · 638 阅读 · 0 评论 -
LeetCode54. 螺旋矩阵(2024秋季每日一题 21)
给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]输出:[1,2,3,6,9,8,7,4,5]原创 2024-09-19 21:52:53 · 1076 阅读 · 0 评论 -
LeetCode41. 缺失的第一个正数(2024秋季每日一题 20)
给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。输入:nums = [7,8,9,11,12]解释:范围 [1,2] 中的数字都在数组中。输入:nums = [3,4,-1,1]输入:nums = [1,2,0]解释:1 在数组中,但 2 没有。解释:最小的正数 1 没有出现。原创 2024-09-18 21:33:45 · 350 阅读 · 0 评论