LC 649. Dota2 参议院 题目描述这是 LeetCode 上的 649. Dota2 参议院 ,难度为 中等。 Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行使两项权利中的 一 项: 禁止一名参议员的权利:参议员可以让另一位参议员 2023-08-24 贪心 队列 红黑树 有序集合
LC 76. 最小覆盖子串 题目描述这是 LeetCode 上的 76. 最小覆盖子串 ,难度为 困难。 给你一个字符串 s、一个字符串 t。返回 s 中涵盖 t 所有字符的最小子串。 如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 ""。 注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。 如果 s 中存在这样的子串,我们保证它是唯一的答案。 示例 2023-08-12 双指针 滑动窗口
LC 1657. 确定两个字符串是否接近 题目描述这是 LeetCode 上的 1657. 确定两个字符串是否接近 ,难度为 中等。 如果可以使用以下操作从一个字符串得到另一个字符串,则认为两个字符串 接近 : 操作 1:交换任意两个 现有 字符。 例如,abcde -> aecdb 操作 2:将一个 现有 字符的每次出现转换为另一个 现有 字符,并对另一个字符执行相同的操作。 例如,aacabb -> bbcbaa 2023-08-07 模拟
LC 1268. 搜索推荐系统 题目描述这是 LeetCode 上的 1268. 搜索推荐系统 ,难度为 中等。 给你一个产品数组 products 和一个字符串 searchWord,products 数组中每个产品都是一个字符串。 请你设计一个推荐系统,在依次输入单词 searchWord 的每一个字母后,推荐 products 数组中前缀与 searchWord 相同的最多三个产品。如果前缀相同的可推荐产品超过三个,请按字 2023-08-06 哈希表 二分 字典树 排序
LC 1503. 所有蚂蚁掉下来前的最后一刻 题目描述这是 LeetCode 上的 1503. 所有蚂蚁掉下来前的最后一刻 ,难度为 中等。 有一块木板,长度为 n 个 单位 。一些蚂蚁在木板上移动,每只蚂蚁都以每秒一个单位的速度移动。其中,一部分蚂蚁向左移动,其他蚂蚁向右移动。 当两只向 不同 方向移动的蚂蚁在某个点相遇时,它们会同时改变移动方向并继续移动。假设更改方向不会花费任何额外时间。 而当蚂蚁在某一时刻 t 到达木板的一端时,它立即 2023-07-30 模拟 脑筋急转弯
LC 1802. 有界数组中指定下标处的最大值 题目描述这是 LeetCode 上的 1802. 有界数组中指定下标处的最大值 ,难度为 中等。 给你三个正整数 n、index 和 maxSum。 你需要构造一个同时满足下述所有条件的数组 nums(下标 从 0 开始 计数): nums.length == n nums[i] 是 正整数 ,其中 0 <= i < n abs(nums[i] - nums[i+1]) <= 2023-07-28 模拟 二分 贪心 数学 构造
LC 97. 交错字符串 题目描述这是 LeetCode 上的 97. 交错字符串 ,难度为 中等。 给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串: s = s1 + s2 + ... + sn t = t1 + t2 + ... + tm |n - m| <= 1 交 2023-07-25 线性 DP 记忆化搜索
LC 2335. 装满杯子需要的最短总时长 题目描述这是 LeetCode 上的 2335. 装满杯子需要的最短总时长 ,难度为 简单。 现有一台饮水机,可以制备冷水、温水和热水。每秒钟,可以装满 2 杯 不同 类型的水或者 1 杯任意类型的水。 给你一个下标从 0 开始、长度为 3 的整数数组 amount,其中 amount[0]、amount[1] 和 amount[2] 分别表示需要装满冷水、温水和热水的杯子数量。 返回装满所有杯子 2023-07-18 模拟 贪心 数学 排序 递归
LC 2305. 公平分发饼干 题目描述这是 LeetCode 上的 2305. 公平分发饼干 ,难度为 中等。 给你一个整数数组 cookies,其中 cookies[i] 表示在第 i 个零食包中的饼干数量。另给你一个整数 k 表示等待分发零食包的孩子数量,所有零食包都需要分发。 在同一个零食包中的所有饼干都必须分发给同一个孩子,不能分开。 分发的不公平程度定义为单个孩子在分发过程中能够获得饼干的最大总数。 返回所有分发的最 2023-07-18 位运算 状压 DP
LC 943. 最短超级串 题目描述这是 LeetCode 上的 943. 最短超级串 ,难度为 困难。 给定一个字符串数组 words,找到以 words 中每个字符串作为子字符串的最短字符串。如果有多个有效最短字符串满足题目条件,返回其中 任意一个 即可。 我们可以假设 words 中没有字符串是 words 中另一个字符串的子字符串。 示例 1:12345输入:words = ["alex",&qu 2023-07-17 位运算 状压 DP
LC 1041. 困于环中的机器人 题目描述这是 LeetCode 上的 1041. 困于环中的机器人 ,难度为 中等。 在无限的平面上,机器人最初位于 $(0, 0)$ 处,面朝北方。注意: 北方向 是 y 轴的正方向。 南方向 是 y 轴的负方向。 东方向 是 x 轴的正方向。 西方向 是 x 轴的负方向。 机器人可以接受下列三条指令之一: "G":直走 $1$ 个单位 "L":左转 2023-07-17 模拟 脑筋急转弯
LC 985. 查询后的偶数和 题目描述这是 LeetCode 上的 985. 查询后的偶数和 ,难度为 中等。 给出一个整数数组 A 和一个查询数组 queries。 对于第 i 次查询,有 val = queries[i][0], index = queries[i][1],我们会把 val 加到 A[index] 上。然后,第 i 次查询的答案是 A 中偶数值的和。 (此处给定的 index = queries[i][1] 2023-07-17 模拟
LC 1222. 可以攻击国王的皇后 题目描述这是 LeetCode 上的 1222. 可以攻击国王的皇后 ,难度为 中等。 在一个 8x8 的棋盘上,放置着若干「黑皇后」和一个「白国王」。 给定一个由整数坐标组成的数组 queens,表示黑皇后的位置;以及一对坐标 king,表示白国王的位置,返回所有可以攻击国王的皇后的坐标(任意顺序)。 示例 1: 1234567891011输入:queens = [[0,1],[1,0],[4 2023-07-17 模拟 BFS
LC 950. 按递增顺序显示卡牌 题目描述这是 LeetCode 上的 950. 按递增顺序显示卡牌 ,难度为 中等。 牌组中的每张卡牌都对应有一个唯一的整数。你可以按你想要的顺序对这套卡片进行排序。 最初,这些卡牌在牌组里是正面朝下的(即,未显示状态)。 现在,重复执行以下步骤,直到显示所有卡牌为止: 从牌组顶部抽一张牌,显示它,然后将其从牌组中移出。 如果牌组中仍有牌,则将下一张处于牌组顶部的牌放在牌组的底部。 如果仍有未显 2023-07-17 模拟 队列 排序 构造
LC 1210. 穿过迷宫的最少移动次数 题目描述这是 LeetCode 上的 1210. 穿过迷宫的最少移动次数 ,难度为 困难。 你还记得那条风靡全球的贪吃蛇吗? 我们在一个 n*n 的网格上构建了新的迷宫地图,蛇的长度为 2,也就是说它会占去两个单元格。蛇会从左上角((0, 0) 和 (0, 1))开始移动。我们用 0 表示空单元格,用 1 表示障碍物。蛇需要移动到迷宫的右下角((n-1, n-2) 和 (n-1, n-1))。 每 2023-02-09 BFS