LC 1996. 游戏中弱角色的数量 题目描述这是 LeetCode 上的 1996. 游戏中弱角色的数量 ,难度为 中等。 你正在参加一个多角色游戏,每个角色都有两个主要属性:攻击 和 防御 。 给你一个二维整数数组 properties,其中 $properties[i] = [attack_i, defense_i]$ 表示游戏中第 $i$ 个角色的属性。 如果存在一个其他角色的攻击和防御等级 都严格高于 该角色的攻击和防御等级 2022-01-27 贪心
LC 2047. 句子中的有效单词数 题目描述这是 LeetCode 上的 2047. 句子中的有效单词数 ,难度为 简单。 句子仅由小写字母('a' 到 'z')、数字(’0’ 到 ‘9’)、连字符('-')、标点符号('!'、'.' 和 ',')以及空格(' ')组成。每个句子可以根据空格分解成 一个或者多个 token 2022-01-27 模拟 双指针
LC 2013. 检测正方形 题目描述这是 LeetCode 上的 2013. 检测正方形 ,难度为 中等。 给你一个在 X-Y 平面上的点构成的数据流。设计一个满足下述要求的算法: 添加 一个在数据流中的新点到某个数据结构中。可以添加 重复 的点,并会视作不同的点进行处理。 给你一个查询点,请你从数据结构中选出三个点,使这三个点和查询点一同构成一个 面积为正 的 轴对齐正方形 ,统计 满足该要求的方案数目。 轴对齐正方形 2022-01-26 哈希表
LC 1688. 比赛中的配对次数 题目描述这是 LeetCode 上的 1688. 比赛中的配对次数 ,难度为 简单。 给你一个整数 n ,表示比赛中的队伍数。比赛遵循一种独特的赛制: 如果当前队伍数是 偶数 ,那么每支队伍都会与另一支队伍配对。总共进行 n / 2 场比赛,且产生 n / 2 支队伍进入下一轮。 如果当前队伍数为 奇数 ,那么将会随机轮空并晋级一支队伍,其余的队伍配对。总共进行 (n - 1) / 2 场比赛, 2022-01-24 模拟
LC 2045. 到达目的地的第二短时间 题目描述这是 LeetCode 上的 2045. 到达目的地的第二短时间 ,难度为 困难。 城市用一个 双向连通 图表示,图中有 $n$ 个节点,从 $1$ 到 $n$ 编号(包含 $1$ 和 $n$)。图中的边用一个二维整数数组 $edges$ 表示,其中每个 $edges[i] = [u_i, v_i]$ 表示一条节点 $u_i$ 和节点 $v_i$ 之间的双向连通边。每组节点对由 最多一条 2022-01-23 BFS 最短路 启发式搜索 AStar 算法 堆优化 Dijkstra
LC 2034. 股票价格波动 题目描述这是 LeetCode 上的 2034. 股票价格波动 ,难度为 中等。 给你一支股票价格的数据流。数据流中每一条记录包含一个 时间戳 和该时间点股票对应的 价格 。 不巧的是,由于股票市场内在的波动性,股票价格记录可能不是按时间顺序到来的。某些情况下,有的记录可能是错的。如果两个有相同时间戳的记录出现在数据流中,前一条记录视为错误记录,后出现的记录 更正 前一条错误的记录。 请你设计一个 2022-01-23 数据结构
LC 1332. 删除回文子序列 题目描述这是 LeetCode 上的 1332. 删除回文子序列 ,难度为 简单。 给你一个字符串 s,它仅由字母 'a' 和 'b' 组成。每一次删除操作都可以从 s 中删除一个回文 子序列。 返回删除给定字符串中所有字符(字符串为空)的最小删除次数。 「子序列」定义:如果一个字符串可以通过删除原字符串某些字符而不改变原字符顺序得到,那么这个字符串就是原字符串的一 2022-01-21 模拟 双指针
LC 1345. 跳跃游戏 IV 题目描述这是 LeetCode 上的 1345. 跳跃游戏 IV ,难度为 困难。 给你一个整数数组 arr ,你一开始在数组的第一个元素处(下标为 0)。 每一步,你可以从下标 i 跳到下标: i + 1 满足:i + 1 < arr.length i - 1 满足:i - 1 >= 0 j 满足:arr[i] == arr[j] 且 i != j 请你返回到达数组最后一个元素的 2022-01-20 图论 BFS 双向 BFS
LC 2029. 石子游戏 IX 题目描述这是 LeetCode 上的 2029. 石子游戏 IX ,难度为 中等。 Alice 和 Bob 轮流进行自己的回合,Alice 先手。每一回合,玩家需要从 stones 中移除任一石子。 如果玩家移除石子后,导致 所有已移除石子 的价值 总和 可以被 $3$ 整除,那么该玩家就 输掉游戏 。如果不满足上一条,且移除后没有任何剩余的石子,那么 Bob 将会直接获胜(即便是在 Alice 2022-01-19 博弈论
LC 219. 存在重复元素 II 题目描述这是 LeetCode 上的 219. 存在重复元素 II ,难度为 简单。 给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。 示例 1:123输入:nums = [1,2,3,1], k = 3输出: 2022-01-18 哈希表 滑动窗口
LC 539. 最小时间差 题目描述这是 LeetCode 上的 539. 最小时间差 ,难度为 中等。 给定一个 $24$ 小时制(小时:分钟 "HH:MM")的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示。 示例 1:123输入:timePoints = ["23:59","00:00"]输出:1示例 2:123输入:timePoints = [& 2022-01-17 哈希表 模拟 排序
LC 1220. 统计元音字母序列的数目 题目描述这是 LeetCode 上的 1220. 统计元音字母序列的数目 ,难度为 困难。 给你一个整数 n,请你帮忙统计一下我们可以按下述规则形成多少个长度为 n 的字符串: 字符串中的每个字符都应当是小写元音字母(’a’, ‘e’, ‘i’, ‘o’, ‘u’) 每个元音 'a' 后面都只能跟着 'e' 每个元音 'e' 后面只能跟着 ' 2022-01-16 线性 DP 矩阵快速幂
LC 382. 链表随机节点 题目描述这是 LeetCode 上的 382. 链表随机节点 ,难度为 中等。 Tag :「链表」、「模拟」、「蓄水池抽样」 给你一个单链表,随机选择链表的一个节点,并返回相应的节点值。每个节点 被选中的概率一样 。 实现 Solution 类: Solution(ListNode head) 使用整数数组初始化对象。 int getRandom() 从链表中随机选择一个节点并返回该节点的值。链 2022-01-15
LC 1716. 计算力扣银行的钱 题目描述这是 LeetCode 上的 1716. 计算力扣银行的钱 ,难度为 简单。 Hercy 想要为购买第一辆车存钱。他 每天 都往力扣银行里存钱。 最开始,他在周一的时候存入 1 块钱。从周二到周日,他每天都比前一天多存入 1 块钱。在接下来每一个周一,他都会比 前一个周一 多存入 1 块钱。 给你 n ,请你返回在第 n 天结束的时候他在力扣银行总共存了多少块钱。 示例 1:12345输入 2022-01-14 模拟 数学
LC 373. 查找和最小的K对数字 题目描述这是 LeetCode 上的 373. 查找和最小的K对数字 ,难度为 中等。 给定两个以升序排列的整数数组 nums1 和 nums2 , 以及一个整数 k 。 定义一对值 $(u,v)$,其中第一个元素来自 nums1,第二个元素来自 nums2。 请找到和最小的 k 个数对 $(u_1,v_1), (u_2,v_2) … (u_k,v_k)$ 。 示例 1:123456输入: 2022-01-13 二分 优先队列(堆) 多路归并