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:12 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, 2023-12-04 BST 中序遍历
LC 1423. 可获得的最大点数 题目描述这是 LeetCode 上的 1423. 可获得的最大点数 ,难度为 中等。 几张卡牌排成一行,每张卡牌都有一个对应的点数,点数由整数数组 cardPoints 给出。 每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。 你的点数就是你拿到手中的所有卡牌的点数之和。 给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。 示例 1:123 2023-12-03 滑动窗口
LC 1094. 拼车 题目描述这是 LeetCode 上的 1094. 拼车 ,难度为 中等。 车上最初有 capacity 个空座位,车只能向一个方向行驶(不允许掉头或改变方向)。 给定整数 capacity 和一个数组 trips, $trip[i] = [numPassengers{i}, from{i}, to{i}]$ 表示第 i 次旅行有 $numPassengers{i}$ 乘客,接他们和放他们的位置分 2023-12-02 前缀和 差分
LC 2661. 找出叠涂元素 题目描述这是 LeetCode 上的 2661. 找出叠涂元素 ,难度为 中等。 给你一个下标从 $0$ 开始的整数数组 arr 和一个 $m \times n$ 的整数矩阵 mat。 arr 和 mat 都包含范围 $[1,m \times n]$ 内的所有整数。 从下标 $0$ 开始遍历 arr 中的每个下标 i ,并将包含整数 arr[i] 的 mat 单元格涂色。 请你找出 arr 中在 2023-12-01 哈希表 模拟 计数
LC 2336. 无限集中的最小数字 题目描述这是 LeetCode 上的 2336. 无限集中的最小数字 ,难度为 中等。 现有一个包含所有正整数的集合 $[1, 2, 3, 4, 5, …]$ 。 实现 SmallestInfiniteSet 类: SmallestInfiniteSet() 初始化 SmallestInfiniteSet 对象以包含所有正整数。 int popSmallest() 移除并返回该无限集中的最小整数 2023-11-29 哈希表 优先队列(堆)
LC 1670. 设计前中后队列 题目描述这是 LeetCode 上的 1670. 设计前中后队列 ,难度为 中等。 请你设计一个队列,支持在前,中,后三个位置的 push 和 pop 操作。 请你完成 FrontMiddleBack 类: FrontMiddleBack() 初始化队列。 void pushFront(int val) 将 val 添加到队列的 最前面 。 void pushMiddle(int val) 将 2023-11-28 队列 链表 双端队列 数据结构
LC 1457. 二叉树中的伪回文路径 题目描述这是 LeetCode 上的 1457. 二叉树中的伪回文路径 ,难度为 中等。 给你一棵二叉树,每个节点的值为 1 到 9 。 我们称二叉树中的一条路径是 「伪回文」的,当它满足:路径经过的所有节点值的排列中,存在一个回文序列。 请你返回从根到叶子节点的所有路径中伪回文路径的数目。 示例 1: 123456输入:root = [2,3,1,3,1,null,1]输出:2 解释:上图为给定 2023-11-25 DFS 位运算
LC 2824. 统计和小于目标的下标对数目 题目描述这是 LeetCode 上的 2824. 统计和小于目标的下标对数目 ,难度为 简单。 给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 target,请你返回满足 0 <= i < j < n 且 nums[i] + nums[j] < target 的下标对 $(i, j)$ 的数目。 示例 1:123456789输入:nums = [-1, 2023-11-24 二分 双指针 排序
LC 1669. 合并两个链表 题目描述这是 LeetCode 上的 1669. 合并两个链表 ,难度为 中等。 给你两个链表 list1 和 list2,它们包含的元素分别为 n 个和 m 个。 请你将 list1 中下标从 a 到 b 的全部节点都删除,并将 list2 接在被删除节点的位置。 下图中蓝色边和节点展示了操作后的结果: 请你返回结果链表的头指针。 示例 1: 12345输入:list1 = [0,1,2,3, 2023-11-23 链表