LC 1995. 统计特殊四元组 题目描述这是 LeetCode 上的 1995. 统计特殊四元组 ,难度为 简单。 给你一个 下标从 0 开始 的整数数组 nums,返回满足下述条件的不同四元组 (a, b, c, d) 的 数目 : nums[a] + nums[b] + nums[c] == nums[d],且 a < b < c < d。 示例 1:12345输入:nums = [1,2,3,6]输出:1 2021-12-28 哈希表 枚举 背包 DP
LC 472. 连接词 题目描述这是 LeetCode 上的 472. 连接词 ,难度为 困难。 给你一个 不含重复 单词的字符串数组 words ,请你找出并返回 words 中的所有 连接词 。 连接词 定义为:一个完全由给定数组中的至少两个较短单词组成的字符串。 示例 1:1234567输入:words = ["cat","cats","catsdogcats&qu 2021-12-27 序列 DP 字符串哈希
LC 825. 适龄的朋友 题目描述这是 LeetCode 上的 825. 适龄的朋友 ,难度为 中等。 在社交媒体网站上有 $n$ 个用户。给你一个整数数组 ages ,其中 $ages[i]$ 是第 $i$ 个用户的年龄。 如果下述任意一个条件为真,那么用户 $x$ 将不会向用户 $y$(x != y)发送好友请求: $age[y] <= 0.5 * age[x] + 7$ $age[y] > age[x] 2021-12-26 双指针 前缀和 排序 桶排序
LC 1078. Bigram 分词 题目描述这是 LeetCode 上的 1078. Bigram 分词 ,难度为 简单。 Tag :「模拟」 给出第一个词 first 和第二个词 second,考虑在某些文本 text 中可能以 "first second third" 形式出现的情况,其中 second 紧随 first 出现,third 紧随 second 出现。 对于每种这样的情况,将第三个词 " 2021-12-26
LC 1609. 奇偶树 题目描述这是 LeetCode 上的 1609. 奇偶树 ,难度为 中等。 如果一棵二叉树满足下述几个条件,则可以称为 奇偶树 : 二叉树根节点所在层下标为 $0$ ,根的子节点所在层下标为 $1$ ,根的孙节点所在层下标为 $2$ ,依此类推。 偶数下标 层上的所有节点的值都是 奇 整数,从左到右按顺序 严格递增 奇数下标 层上的所有节点的值都是 偶 整数,从左到右按顺序 严格递减 给你二叉 2021-12-24 DFS BFS 层序遍历
LC 1705. 吃苹果的最大数目 题目描述这是 LeetCode 上的 1705. 吃苹果的最大数目 ,难度为 中等。 有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果。 在第 i 天,树上会长出 apples[i] 个苹果,这些苹果将会在 days[i] 天后(也就是说,第 i + days[i] 天时)腐烂,变得无法食用。 也可能有那么几天,树上不会长出新的苹果,此时用 apples[i] == 0 且 days[i 2021-12-23 优先队列(堆) 贪心
LC 1044. 最长重复子串 题目描述这是 LeetCode 上的 1044. 最长重复子串 ,难度为 困难。 给你一个字符串 s ,考虑其所有 重复子串 :即 s 的连续子串,在 s 中出现 $2$ 次或更多次。这些出现之间可能存在重叠。 返回 任意一个 可能具有最长长度的重复子串。如果 s 不含重复子串,那么答案为 "" 。 示例 1:123输入:s = "banana"输出:&q 2021-12-22 二分 字符串哈希 后缀数组
LC 686. 重复叠加字符串匹配 题目描述这是 LeetCode 上的 686. 重复叠加字符串匹配 ,难度为 中等。 给定两个字符串 a 和 b,寻找重复叠加字符串 a 的最小次数,使得字符串 b 成为叠加后的字符串 a 的子串,如果不存在则返回 -1。 注意:字符串 "abc" 重复叠加 0 次是 "",重复叠加 1 次是 "abc",重复叠加 2 次是 " 2021-12-21 字符串哈希 KMP
LC 475. 供暖器 题目描述这是 LeetCode 上的 475. 供暖器 ,难度为 中等。 冬季已经来临。 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。 在加热器的加热半径范围内的每个房屋都可以获得供暖。 现在,给出位于一条水平线上的房屋 houses 和供暖器 heaters 的位置,请你找出并返回可以覆盖所有房屋的最小加热半径。 说明:所有供暖器都遵循你的半径标准,加热的半径也一样。 示例 1:12 2021-12-19 双指针 二分 排序
LC 997. 找到小镇的法官 题目描述这是 LeetCode 上的 997. 找到小镇的法官 ,难度为 简单。 在一个小镇里,按从 $1$ 到 $n$ 为 $n$ 个人进行编号。传言称,这些人中有一个是小镇上的秘密法官。 如果小镇的法官真的存在,那么: 小镇的法官不相信任何人。 每个人(除了小镇法官外)都信任小镇的法官。 只有一个人同时满足条件 $1$ 和条件 $24 。 给定数组 $trust$,该数组由信任对 $tru 2021-12-19 模拟 图论
LC 419. 甲板上的战舰 题目描述这是 LeetCode 上的 419. 甲板上的战舰 ,难度为 中等。 给你一个大小为 $m x n$ 的矩阵 $board$ 表示甲板,其中,每个单元格可以是一艘战舰 'X' 或者是一个空位 '.' ,返回在甲板 $board$ 上放置的 战舰 的数量。 战舰 只能水平或者垂直放置在 $board$ 上。换句话说,战舰只能按 $1 k$($1$ 行,$k 2021-12-17 脑筋急转弯
LC 1518. 换酒问题 题目描述这是 LeetCode 上的 1518. 换酒问题 ,难度为 简单。 小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒。你购入了 numBottles 瓶酒。 如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的。 请你计算最多能喝到多少瓶酒。 示例 1:123456输入:numBottles = 9, numExchange = 3输出:13解释:你可以用 3 个空酒瓶兑换 2021-12-16 模拟 数学
LC 1610. 可见点的最大数目 题目描述这是 LeetCode 上的 1610. 可见点的最大数目 ,难度为 困难。 给你一个点数组 points 和一个表示角度的整数 angle ,你的位置是 location,其中 $location = [pos_x, pos_y]$ 且 $points[i] = [x_i, y_i]$ 都表示 X-Y 平面上的整数坐标。 最开始,你面向东方进行观测。你 不能 进行移动改变位置,但可以通过 2021-12-15 双指针 滑动窗口 数学 几何 排序
LC 851. 喧闹和富有 题目描述这是 LeetCode 上的 851. 喧闹和富有 ,难度为 中等。 有一组 n 个人作为实验对象,从 0 到 n - 1 编号,其中每个人都有不同数目的钱,以及不同程度的安静值(quietness)。为了方便起见,我们将编号为 x 的人简称为 "person x"。 给你一个数组 richer ,其中 richer[i] = [ai, bi] 表示 $person$ 2021-12-14 拓扑排序
LC 630. 课程表 III 题目描述这是 LeetCode 上的 630. 课程表 III ,难度为 困难。 这里有 $n$ 门不同的在线课程,按从 $1$ 到 $n$ 编号。给你一个数组 $courses$ ,其中 $courses[i] = [durationi, lastDayi]$ 表示第 $i$ 门课将会 持续 上 $duration_i$ 天课,并且必须在不晚于 $lastDay_i$ 的时候完成。 你的学期从第 2021-12-14 贪心