LC 1210. 穿过迷宫的最少移动次数 题目描述这是 LeetCode 上的 1210. 穿过迷宫的最少移动次数 ,难度为 困难。 你还记得那条风靡全球的贪吃蛇吗? 我们在一个 n*n 的网格上构建了新的迷宫地图,蛇的长度为 2,也就是说它会占去两个单元格。蛇会从左上角((0, 0) 和 (0, 1))开始移动。我们用 0 表示空单元格,用 1 表示障碍物。 蛇需要移动到迷宫的右下角((n-1, n-2) 和 (n-1, n-1))。 2024-04-27 BFS
LC 1781. 所有子字符串美丽值之和 题目描述这是 LeetCode 上的 1781. 所有子字符串美丽值之和 ,难度为 中等。 一个字符串的 美丽值 定义为:出现频率最高字符与出现频率最低字符的出现次数之差。 比方说,"abaacc" 的美丽值为 3 - 1 = 2。 给你一个字符串 s ,请你返回它所有子字符串的 美丽值 之和。 示例 1:12345输入:s = "aabcb"输出:5解释: 2024-04-27 模拟 哈希表
LC 2335. 装满杯子需要的最短总时长 题目描述这是 LeetCode 上的 2335. 装满杯子需要的最短总时长 ,难度为 简单。 现有一台饮水机,可以制备冷水、温水和热水。每秒钟,可以装满 2 杯 不同 类型的水或者 1 杯任意类型的水。 给你一个下标从 0 开始、长度为 3 的整数数组 amount,其中 amount[0]、amount[1] 和 amount[2] 分别表示需要装满冷水、温水和热水的杯子数量。 返回装满所有杯子 2024-04-27 模拟 贪心 数学 排序 递归
LC 1759. 统计同构子字符串的数目 题目描述这是 LeetCode 上的 1759. 统计同构子字符串的数目 ,难度为 中等。 给你一个字符串 s,返回 s 中 同构子字符串 的数目。 由于答案可能很大,只需返回对 $10^9 + 7$ 取余 后的结果。 同构字符串的定义为:如果一个字符串中的所有字符都相同,那么该字符串就是同构字符串。 子字符串是字符串中的一个连续字符序列。 示例 1:12345678910111213输入:s = 2024-03-23 双指针 数学
LC 1253. 重构 2 行二进制矩阵 题目描述这是 LeetCode 上的 1253. 重构 2 行二进制矩阵 ,难度为 中等。 给你一个 2 行 n 列的二进制数组: 矩阵是一个二进制矩阵,这意味着矩阵中的每个元素不是 0 就是 1。 第 0 行的元素之和为 upper。 第 1 行的元素之和为 lower。 第 i 列(从 0 开始编号)的元素之和为 colsum[i],colsum 是一个长度为 n 的整数数组。 你需要利用 2024-03-14 模拟 贪心 构造
LC 1797. 设计一个验证系统 题目描述这是 LeetCode 上的 1797. 设计一个验证系统 ,难度为 中等。 你需要设计一个包含验证码的验证系统。 每一次验证中,用户会收到一个新的验证码,这个验证码在 ct 时刻之后 timeToLive 秒过期。 如果验证码被更新了,那么它会在 ct (可能与之前的 ct 不同)时刻延长 timeToLive 秒。 请你实现 AuthenticationManager 类: Auth 2024-03-14 哈希表 链表
LC 1466. 重新规划路线 题目描述这是 LeetCode 上的 1466. 重新规划路线 ,难度为 中等。 n 座城市,从 0 到 n-1 编号,其间共有 n-1 条路线。 因此,要想在两座不同城市之间旅行只有唯一一条路线可供选择(路线网形成一颗树)。 去年,交通运输部决定重新规划路线,以改变交通拥堵的状况。 路线用 connections 表示,其中 $connections[i] = [a, b]$ 表示从城市 a 到 2024-01-18 DFS 图
LC 2646. 最小化旅行的价格总和 题目描述这是 LeetCode 上的 2646. 最小化旅行的价格总和 ,难度为 困难。 现有一棵无向、无根的树,树中有 n 个节点,按从 0 到 n - 1 编号。 给你一个整数 n 和一个长度为 n - 1 的二维整数数组 edges,其中 $edges[i] = [a{i}, b{i}]$ 表示树中节点 $a{i}$ 和 $b{i}$ 之间存在一条边。 每个节点都关联一个价格。给你一个整数数 2024-01-18 DFS 图
LC 1798. 你能构造出连续值的最大数目 题目描述这是 LeetCode 上的 1798. 你能构造出连续值的最大数目 ,难度为 中等。 给你一个长度为 n 的整数数组 coins,它代表你拥有的 n 个硬币。第 i 个硬币的值为 coins[i]。如果你从这些硬币中选出一部分硬币,它们的和为 x ,那么称,你可以构造出 x 。 请返回从 0 开始(包括 0 ),你最多能构造出多少个连续整数。 你可能有多个相同值的硬币。 示例 1:123 2024-01-17 数学 脑筋急转弯 排序 构造
LC 1775. 通过最少操作次数使数组的和相等 题目描述这是 LeetCode 上的 1775. 通过最少操作次数使数组的和相等量 ,难度为 中等。 给你两个长度可能不等的整数数组 nums1 和 nums2 。两个数组中的所有值都在 1 到 6 之间(包含 1 和 6)。 每次操作中,你可以选择 任意 数组中的任意一个整数,将它变成 1 到 6 之间 任意 的值(包含 1 和 6)。 请你返回使 nums1 中所有数的和与 nums2 中所有 2023-12-28 贪心 数学 枚举
LC LCR 161. 连续天数的最高销售额 题目描述这是 LeetCode 上的 LCR 161. 连续天数的最高销售额 ,难度为 简单。 某公司每日销售额记于整数数组 sales,请返回所有连续一或多天销售额总和的最大值。 要求实现时间复杂度为 $O(n)$ 的算法。 示例 1:12345输入:sales = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:[4,-1,2,1] 此连续四天的销售总额最高,为 6。示例 2:12 2023-12-06 前缀和 分治 区间求和问题 线性 DP
LC 538. 把二叉搜索树转换为累加树 题目描述这是 LeetCode 上的 538. 把二叉搜索树转换为累加树 ,难度为 中等。 给出二叉搜索树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下, 二叉搜索树满足下列约束条件: 节点的左子树仅包含键小于节点键的节点。 节点的右子树仅包含键大于节点键的节点。 2023-12-05 BST 中序遍历
LC 2477. 到达首都的最少油耗 题目描述这是 LeetCode 上的 2477. 到达首都的最少油耗 ,难度为 中等。 给你一棵 n 个节点的树(一个无向、连通、无环图),每个节点表示一个城市,编号从 0 到 n - 1,且恰好有 n - 1 条路。 0 是首都。给你一个二维整数数组 roads,其中 $roads[i] = [a{i}, b{i}]$ ,表示城市 $a{i}$ 和 $b{i}$ 之间有一条 双向路 。 每个城市 2023-12-05 DFS
LC 1038. 从二叉搜索树到更大和树 题目描述这是 LeetCode 上的 1038. 从二叉搜索树到更大和树 ,难度为 中等。 给定一个二叉搜索树 root (BST),请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。 提醒一下, 二叉搜索树满足下列约束条件: 节点的左子树仅包含键小于节点键的节点。 节点的右子树仅包含键大于节点键的节点。 左右子树也必须是二叉搜索树。 示例 1:123输入:[4,1,6,0, 2023-12-04 BST 中序遍历
LC 1423. 可获得的最大点数 题目描述这是 LeetCode 上的 1423. 可获得的最大点数 ,难度为 中等。 几张卡牌排成一行,每张卡牌都有一个对应的点数,点数由整数数组 cardPoints 给出。 每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。 你的点数就是你拿到手中的所有卡牌的点数之和。 给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。 示例 1:123 2023-12-03 滑动窗口