LC 950. 按递增顺序显示卡牌 题目描述这是 LeetCode 上的 950. 按递增顺序显示卡牌 ,难度为 中等。 牌组中的每张卡牌都对应有一个唯一的整数。你可以按你想要的顺序对这套卡片进行排序。 最初,这些卡牌在牌组里是正面朝下的(即,未显示状态)。 现在,重复执行以下步骤,直到显示所有卡牌为止: 从牌组顶部抽一张牌,显示它,然后将其从牌组中移出。 如果牌组中仍有牌,则将下一张处于牌组顶部的牌放在牌组的底部。 如果仍有未显 2023-07-17 模拟 队列 排序 构造
LC 1233. 删除子文件夹 题目描述这是 LeetCode 上的 1233. 删除子文件夹 ,难度为 中等。 你是一位系统管理员,手里有一份文件夹列表 folder,你的任务是要删除该列表中的所有 子文件夹,并以 任意顺序 返回剩下的文件夹。 如果文件夹 folder[i] 位于另一个文件夹 folder[j] 下,那么 folder[i] 就是 folder[j] 的 子文件夹 。 文件夹的「路径」是由一个或多个按以下格式 2023-02-09 字典树
LC 1129. 颜色交替的最短路径 题目描述这是 LeetCode 上的 1129. 颜色交替的最短路径 ,难度为 中等。 在一个有向图中,节点分别标记为 0, 1, ..., n-1。图中每条边为红色或者蓝色,且存在自环或平行边。 red_edges 中的每一个 [i, j] 对表示从节点 i 到节点 j 的红色有向边。类似地,blue_edges 中的每一个 [i, j] 对表示从节点 i 到节点 j 的蓝色有向边。 返回长度为 2023-02-06 BFS 最短路
LC 1785. 构成特定和需要添加的最少元素 题目描述这是 LeetCode 上的 1785. 构成特定和需要添加的最少元素 ,难度为 中等。 给你一个整数数组 nums,和两个整数 limit 与 goal。 数组 nums 有一条重要属性:abs(nums[i]) <= limit。 返回使数组元素总和等于 goal 所需要向数组中添加的 最少元素数量 ,添加元素 不应改变 数组中 abs(nums[i]) <= limit 2022-12-16 模拟 贪心
LC 1697. 检查边长度限制的路径是否存在 题目描述这是 LeetCode 上的 1697. 检查边长度限制的路径是否存在 ,难度为 困难。 给你一个 n 个点组成的无向图边集 edgeList,其中 $edgeList[i] = [u_i, v_i, dis_i]$ 表示点 $u_i$ 和点 $v_i$ 之间有一条长度为 $dis_i$ 的边。请注意,两个点之间可能有 超过一条边 。 给你一个查询数组 queries,其中 $querie 2022-12-14 双指针 并查集 排序
LC 1780. 判断一个数字是否可以表示成三的幂的和 题目描述这是 LeetCode 上的 1780. 判断一个数字是否可以表示成三的幂的和 ,难度为 中等。 给你一个整数 n,如果你可以将 n 表示成若干个不同的三的幂之和,请你返回 true,否则请返回 false。 对于一个整数 y,如果存在整数 x 满足 y == 3x,我们称这个整数 y 是三的幂。 示例 1:12345输入:n = 12输出:true解释:12 = 31 + 32示例 2: 2022-12-12 数学
LC 1691. 堆叠长方体的最大高度 题目描述这是 LeetCode 上的 1691. 堆叠长方体的最大高度 ,难度为 困难。 给你 n 个长方体 cuboids,其中第 i 个长方体的长宽高表示为 $cuboids[i] = [width_i, length_i, height_i]$(下标从 0 开始)。请你从 cuboids 选出一个 子集 ,并将它们堆叠起来。 如果 $width{i} <= width{j}$ 且 $l 2022-12-10 动态规划 序列 DP 排序
LC 113. 路径总和 II 题目描述这是 LeetCode 上的 113. 路径总和 II ,难度为 中等。 给你二叉树的根节点 root 和一个整数目标和 targetSum,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1: 123输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22输出:[ 2022-12-10 DFS 二叉树
LC 895. 最大频率栈 题目描述这是 LeetCode 上的 895. 最大频率栈 ,难度为 困难。 设计一个类似堆栈的数据结构,将元素推入堆栈,并从堆栈中弹出出现频率最高的元素。 实现 FreqStack 类: FreqStack() 构造一个空的堆栈。 void push(int val) 将一个整数 val 压入栈顶。 int pop() 删除并返回堆栈中出现频率最高的元素。 如果出现频率最高的元素不只一个,则 2022-11-30 哈希表 模拟
LC 1758. 生成交替二进制字符串的最少操作数 题目描述这是 LeetCode 上的 1758. 生成交替二进制字符串的最少操作数 ,难度为 简单。 给你一个仅由字符 '0' 和 '1' 组成的字符串 s 。一步操作中,你可以将任一 '0' 变成 '1' ,或者将 '1' 变成 '0' 。 交替字符串 定义为:如果字符串中不存在相邻两个字符相等的情况 2022-11-29 模拟
LC 813. 最大平均值和的分组 题目描述这是 LeetCode 上的 813. 最大平均值和的分组 ,难度为 中等。 给定数组 nums 和一个整数 k 。我们将给定的数组 nums 分成 最多 k 个相邻的非空子数组 。 分数 由每个子数组内的平均值的总和构成。 注意我们必须使用 nums 数组中的每一个数进行分组,并且分数不一定需要是整数。 返回我们所能得到的最大 分数 是多少。答案误差在 $10^{-6}$ 内被视为是正确 2022-11-28 动态规划 序列 DP 前缀和 数学
LC 882. 细分图中的可到达节点 题目描述这是 LeetCode 上的 882. 细分图中的可到达节点 ,难度为 困难。 给你一个无向图(原始图),图中有 n 个节点,编号从 0 到 n - 1 。你决定将图中的每条边 细分 为一条节点链,每条边之间的新节点数各不相同。 图用由边组成的二维数组 edges 表示,其中 $edges[i] = [u{i}, v{i}, cnt{i}]$ 表示原始图中节点 $u{i}$ 和 $v{i} 2022-11-26 最短路 单源最短路 Dijkstra SPFA
LC 809. 情感丰富的文字 题目描述这是 LeetCode 上的 809. 情感丰富的文字 ,难度为 中等。 有时候人们会用重复写一些字母来表示额外的感受,比如 "hello" -> "heeellooo", "hi" -> "hiii"。我们将相邻字母都相同的一串字符定义为相同字母组,例如:"h", " 2022-11-25 模拟 双指针
LC 795. 区间子数组个数 题目描述这是 LeetCode 上的 795. 区间子数组个数 ,难度为 中等。 给你一个整数数组 nums 和两个整数:left 及 right 。 找出 nums 中连续、非空且其中最大元素在范围 $[left, right]$ 内的子数组,并返回满足条件的子数组的个数。 生成的测试用例保证结果符合 32-bit 整数范围。 示例 1:12345输入:nums = [2,1,4,3], lef 2022-11-24 模拟 单调栈
LC 1742. 盒子中小球的最大数量 题目描述这是 LeetCode 上的 1742. 盒子中小球的最大数量 ,难度为 简单。 你在一家生产小球的玩具厂工作,有 n 个小球,编号从 lowLimit 开始,到 highLimit 结束(包括 lowLimit 和 highLimit ,即 n == highLimit - lowLimit + 1)。另有无限数量的盒子,编号从 1 到 infinity 。 你的工作是将每个小球放入盒子 2022-11-23 哈希表 模拟