假设我们有一个 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 ... 阅读更多
假设我们有一个包含 n 个字符串的数组,称为 names。我们需要在文件系统中创建 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, ... 阅读更多
假设我们有一个有两列 (出生年份,死亡年份) 的表,其中每一行代表第 i 个人的出生年份和死亡年份。某一年 y 的人口是在 y 年期间活着的人数。如果 y 在 [birth_i, death_i - 1] 的范围内(在他们死亡的那一年不计算这个人),则第 i 个人计入 y 年的人口中。因此,我们需要找到人口最多的最早年份。因此,如果输入类似于出生年份死亡年份197020101960202019401970则输出将为 2,因为只有一个值与… 阅读更多