LC 1020. 飞地的数量 题目描述这是 LeetCode 上的 1020. 飞地的数量 ,难度为 中等。 给你一个大小为 $m x n$ 的二进制矩阵 $grid$ ,其中 $0$ 表示一个海洋单元格、$1$ 表示一个陆地单元格。 一次 移动 是指从一个陆地单元格走到另一个相邻(上、下、左、右)的陆地单元格或跨过 $grid$ 的边界。 返回网格中 无法 在任意次数的移动中离开网格边界的陆地单元格的数量。 示例 1:123 2022-02-12 DFS 并查集
LC 1984. 学生分数的最小差值 题目描述这是 LeetCode 上的 1984. 学生分数的最小差值 ,难度为 简单。 给你一个 下标从 $0$ 开始 的整数数组 $nums$ ,其中 $nums[i]$ 表示第 $i$ 名学生的分数。另给你一个整数 $k$ 。 从数组中选出任意 $k$ 名学生的分数,使这 $k$ 个分数间 最高分 和 最低分 的 差值 达到 最小化 。 返回可能的 最小差值 。 示例 1:1234567输入: 2022-02-10 滑动窗口 二分
LC 1447. 最简分数 题目描述这是 LeetCode 上的 1447. 最简分数 ,难度为 中等。 给你一个整数 n ,请你返回所有 $0$ 到 $1$ 之间(不包括 $0$ 和 $1$)满足分母小于等于 n 的 最简 分数 。分数可以以 任意 顺序返回。 示例 1:12345输入:n = 2输出:["1/2"]解释:"1/2" 是唯一一个分母小于等于 2 的最简分数。示例 2 2022-02-09 数学 最大公约数
LC 2006. 差的绝对值为 K 的数对数目 题目描述这是 LeetCode 上的 2006. 差的绝对值为 K 的数对数目 ,难度为 简单。 给你一个整数数组 nums 和一个整数 k ,请你返回数对 $(i, j)$ 的数目,满足 $i < j$ 且|nums[i] - nums[j]| == k。 |x| 的值定义为: 如果 $x >= 0$ ,那么值为 $x$ 。 如果 $x < 0$ ,那么值为 $-x$ 。 2022-02-08 哈希表 模拟
LC 1001. 网格照明 题目描述这是 LeetCode 上的 1001. 网格照明 ,难度为 困难。 在大小为 n x n 的网格 grid 上,每个单元格都有一盏灯,最初灯都处于 关闭 状态。 给你一个由灯的位置组成的二维数组 lamps,其中 $lamps[i] = [row_i, col_i]$ 表示 打开 位于 grid[rowi][coli] 的灯。即便同一盏灯可能在 lamps 中多次列出,不会影响这盏灯处于 2022-02-07 哈希表 模拟
LC 1405. 最长快乐字符串 题目描述这是 LeetCode 上的 1405. 最长快乐字符串 ,难度为 中等。 如果字符串中不含有任何 'aaa','bbb' 或 'ccc' 这样的字符串作为子串,那么该字符串就是一个「快乐字符串」。 给你三个整数 a,b ,c,请你返回 任意一个 满足下列全部条件的字符串 s: s 是一个尽可能长的快乐字符串。 s 中 最多 有 a 个字母 2022-02-06 优先队列(堆) 贪心
LC 1748. 唯一元素的和 题目描述这是 LeetCode 上的 1748. 唯一元素的和 ,难度为 简单。 给你一个整数数组 nums,数组中唯一元素是那些只出现「恰好一次」的元素。 请你返回 nums 中唯一元素的和。 示例 1:12345输入:nums = [1,2,3,2]输出:4解释:唯一元素为 [1,3] ,和为 4 。示例 2:12345输入:nums = [1,1,1,1,1]输出:0解释:没有唯一元素,和为 2022-02-06 哈希表 模拟 双指针 排序
LC 1219. 黄金矿工 题目描述这是 LeetCode 上的 1219. 黄金矿工 ,难度为 中等。 你要开发一座金矿,地质勘测学家已经探明了这座金矿中的资源分布,并用大小为 m * n 的网格 $grid$ 进行了标注。每个单元格中的整数就表示这一单元格中的黄金数量;如果该单元格是空的,那么就是 $0$。 为了使收益最大化,矿工需要按以下规则来开采黄金: 每当矿工进入一个单元,就会收集该单元格中的所有黄金。 矿工每次 2022-02-05 DFS 图论搜索 回溯算法
LC 1725. 可以形成最大正方形的矩形数目 题目描述这是 LeetCode 上的 1725. 可以形成最大正方形的矩形数目 ,难度为 简单。 给你一个数组 rectangles,其中 $rectangles[i] = [l_i, w_i]$ 表示第 $i$ 个矩形的长度为 $l_i$ 、宽度为 $w_i$ 。 如果存在 k 同时满足 $k <= l_i$ 和 $k <= w_i$ ,就可以将第 i 个矩形切成边长为 k 的正方形 2022-02-03 模拟
LC 1414. 和为 K 的最少斐波那契数字数目 题目描述这是 LeetCode 上的 1414. 和为 K 的最少斐波那契数字数目 ,难度为 中等。 给你数字 k ,请你返回和为 k 的斐波那契数字的最少数目,其中,每个斐波那契数字都可以被使用多次。 斐波那契数字定义为: F1 = 1 F2 = 1 Fn = Fn-1 + Fn-2 , 其中 n > 2 。 数据保证对于给定的 k ,一定能找到可行解。 示例 1:123456输入:k 2022-02-03 二分 贪心 数学
LC 2000. 反转单词前缀 题目描述这是 LeetCode 上的 2000. 反转单词前缀 ,难度为 简单。 给你一个下标从 $0$ 开始的字符串 word 和一个字符 ch 。找出 ch 第一次出现的下标 i ,反转 word 中从下标 $0$ 开始、直到下标 i 结束(含下标 i )的那段字符。如果 word 中不存在字符 ch ,则无需进行任何操作。 例如,如果 word = "abcdefd" 2022-02-02 模拟 双指针
LC 1763. 最长的美好子字符串 题目描述这是 LeetCode 上的 1763. 最长的美好子字符串 ,难度为 简单。 当一个字符串 s 包含的每一种字母的大写和小写形式同时出现在 s 中,就称这个字符串 s 是美好字符串。 比方说,"abABB" 是美好字符串,因为 'A' 和 'a' 同时出现了,且 'B' 和 'b' 也同时出现了。 然而, 2022-02-01 模拟 前缀和 位运算
LC 1342. 将数字变成 0 的操作次数 题目描述这是 LeetCode 上的 1342. 将数字变成 0 的操作次数 ,难度为 简单。 给你一个非负整数 num ,请你返回将它变成 $0$ 所需要的步数。 如果当前数字是偶数,你需要把它除以 $2$ ;否则,减去 $1$ 。 示例 1:1234567891011输入:num = 14输出:6解释:步骤 1) 14 是偶数,除以 2 得到 7 。步骤 2) 7 是奇数,减 1 得到 6 。 2022-01-31 模拟 数学
LC 884. 两句话中的不常见单词 题目描述这是 LeetCode 上的 884. 两句话中的不常见单词 ,难度为 简单。 句子 是一串由空格分隔的单词。每个 单词 仅由小写字母组成。 如果某个单词在其中一个句子中恰好出现一次,在另一个句子中却 没有出现 ,那么这个单词就是 不常见的 。 给你两个 句子 s1 和 s2 ,返回所有 不常用单词 的列表。返回列表中单词可以按 任意顺序 组织。 示例 1:123输入:s1 = " 2022-01-29 哈希表 模拟
LC 1765. 地图中的最高点 题目描述这是 LeetCode 上的 1765. 地图中的最高点 ,难度为 中等。 给你一个大小为 m x n 的整数矩阵 isWater ,它代表了一个由 陆地 和 水域 单元格组成的地图。 如果 isWater[i][j] == 0 ,格子 (i, j) 是一个 陆地 格子。 如果 isWater[i][j] == 1 ,格子 (i, j) 是一个 水域 格子。 你需要按照如下规则给每个单 2022-01-29 多源 BFS 图论搜索