假设我们有一个 m x n 的二进制矩阵,我们需要找到有多少个正方形子矩阵全为 1。例如,如果输入是:011111110111,则输出为 15,因为有 10 个边长为 1 的正方形,4 个边长为 2 的正方形和 1 个边长为 3 的正方形。正方形的总数 = 10 + 4 + 1 = 15。为了解决这个问题,我们将遵循以下步骤:如果矩阵只有一个 1,则返回 1;rows := 矩阵的行数;cols := 矩阵的列数;[0]result := 0;for row in range 0 to rows - 1, do for col in range 0 ... 阅读更多
假设我们有两个正值 n 和 k。现在假设我们有一个按升序排列的 n 的所有因子的列表,我们需要找到该列表中的第 k 个因子。如果少于 k 个因子,则返回 -1。例如,如果输入是 n = 28 k = 4,则输出为 7,因为 28 的因子是 [1, 2, 4, 7, 14, 28],第四个是 7。为了解决这个问题,我们将遵循以下步骤:如果 k 等于 1,则返回 1;cand := 一个包含一个元素 [1] 的列表;for i ... 阅读更多
假设我们有一个名为 names 的包含 n 个字符串的数组。我们需要在文件系统中创建 n 个目录,这样,在第 i 分钟,我们将创建一个名为 names[i] 的目录。两个文件不能具有相同的名称,如果我们输入重复的目录名称,系统将添加一个后缀,其形式为 (k),其中 k 是最小的正整数,使得获得的名称保持唯一。我们需要找到一个长度为 n 的字符串数组,其中 ans[i] 是将分配给… 阅读更多
假设我们有一个包含整数的数组,称为 nums,我们还有另外两个值 m 和 k。现在,我们需要制作 m 个花束。要制作一个花束,我们需要花园中 k 朵相邻的花朵。这里花园由 n 种不同的花组成,第 i 朵花将在 bloomDay[i] 开花。每朵花只能在一个花束中使用。我们需要找到等待制作 m 个花束所需的最少天数。如果我们无法制作 m 个花束,则返回 -1。例如,如果输入是 bloomDay = [5, 5, 5, ... 阅读更多
假设我们有一个名为 nums 的数组,其中只存储整数。如果我们有一个数字 k。我们需要找到在移除恰好 k 个元素后唯一元素的最小数量。例如,如果输入是 nums = [5, 4, 2, 2, 4, 4, 3],k = 3,则输出为 2,因为如果我们移除 5 和 3,以及任一个 2 或任一个 4,则只剩下 2 和 4。为了解决这个问题,我们将遵循以下步骤:dictionary:= 一个新的映射;for each num in nums, do if num is ... 阅读更多
假设我们有一个包含两列(出生年份、死亡年份)的表,其中每一行代表第 i 个人的出生年份和死亡年份。某一年 y 的人口是在 y 年期间还活着的人数。如果 y 在包含范围 [birth_i, death_i - 1] 内,则第 i 个人将计入 y 年的人口。(此人未计入其死亡年份的人口中)。因此,我们需要找到人口最多的最早年份。例如,如果输入是出生年份死亡年份197020101960202019401970,则输出为 2,因为只有一个值与… 阅读更多