190 次浏览
假设我们有一个矩阵和一个目标值,我们需要找到和等于目标值的非空子矩阵的个数。这里,子矩阵[(x1, y1), (x2, y2)]是所有单元格matrix[x][y]的集合,其中x的范围是x1到x2,y的范围是y1到y2。如果两个子矩阵[(x1, y1), (x2, y2)]和[(x1', y1'), (x2', y2')]至少有一个坐标不同,则它们是不同的:例如,如果x1与x1'不同。所以,如果输入是这样的010111010,目标值是0,那么输出将是4,这是因为四个1x1……阅读更多
563 次浏览
假设我们有一个字符串S,考虑所有出现2次或多次的重复连续子串。(出现可能重叠),我们需要找到长度尽可能长的重复子串。如果没有这样的子串,则返回空字符串。由于答案可能非常大,所以返回模10^9 + 7的结果。所以,如果输入是这样的“ababbaba”,那么输出将是“bab”。为了解决这个问题,我们将遵循以下步骤-m := 1e9 + 7定义一个函数add(),它将接收a,b,返回((a mod m) + (b mod m)) mod m定义……阅读更多
353 次浏览
假设我们有一个网格,有100万行和100万列,我们还有一个被堵塞单元格的列表。现在我们将从源方格开始,想要到达目标方格。在每次移动中,我们可以走到网格中不在给定被堵塞单元格列表中的向上、向下、向左、向右的相邻方格。我们需要检查是否可以通过一系列移动到达目标方格。所以,如果输入是这样的blocked = [[0, 1], [1, 0]],source = [0, 0],target = [0,……阅读更多
476 次浏览
假设我们想实现StreamChecker类如下:StreamChecker(words) - 这是构造函数,它用给定的单词初始化数据结构。query(letter) - 当对于某个k >= 1,最后k个查询的字符(按从旧到新的顺序,包括刚刚查询的这个字母)拼写出给定列表中的某个单词时,返回true。所以,如果输入是这样的单词列表= ["ce", "g", "lm"],然后多次调用query查询[a, b, c, e, f, g, h, i, j, k, l, m],那么输出将对e,g,m为true,并且……阅读更多
573 次浏览
假设我们有一个正整数N,我们需要找到小于或等于N且至少有一个重复数字的正整数的个数。所以,如果输入是这样的99,那么输出将是9,因为我们有像11、22、33、44、55、66、77、88、99这样的数字。为了解决这个问题,我们将遵循以下步骤:定义一个函数A(),它将接收m,n,ret := 1对于初始化i := 0,当i < n时,更新(将i增加1),执行:-ret := ret * m(将m减少1)返回ret从主……阅读更多
367 次浏览
假设我们有一个N x N的单元格网格,在每个单元格(x, y)中都有一盏灯。最初,一些灯是亮的。lamps[i]是第i盏亮着的灯的位置。每盏亮着的灯都会照亮其x轴、y轴和两个对角线上的每个方格。现在对于第i个查询,即queries[i] = (x, y),如果单元格(x, y)被照亮,则查询的答案为1,否则为0。在每个查询(x, y)之后,我们将关闭位于单元格(x, y)或与其8个方向相邻的任何灯。返回……阅读更多
537 次浏览
假设我们有N堆石头排成一排。这里,第i堆有stones[i]块石头。一个移动包括将K个连续的堆合并成一堆,现在这个移动的成本等于这K堆石头的总数量。我们需要找到将所有石头堆合并成一堆的最小成本。如果没有这样的解决方案,则返回-1。所以,如果输入是这样的[3, 2, 4, 1],K = 2,那么输出将是20,这是因为我们将……阅读更多
237 次浏览
假设我们有一个正整数数组A,如果对于每一对相邻元素,它们的和都是一个完全平方数,我们可以说该数组是方形的。我们需要找到A的方形排列的个数。当且仅当存在某个索引i使得A1[i]与A2[i]不同时,两个排列A1和A2才不同。所以,如果输入是这样的[3, 30, 6],那么输出将是2,因为我们有两个排列,例如[3, 6, 30],[30, 6, 3]。为了解决这个问题,我们将遵循以下步骤……阅读更多
191 次浏览
假设我们有一个数组A。它只包含0和1,这里一个K位翻转包括选择一个长度为K的(连续的)子数组,并同时反转子数组中的位。我们需要找到所需的K位翻转的最小数量,以便数组中没有0。如果没有这样的可能性,则返回-1。所以,如果输入是这样的[0, 0, 0, 1, 0, 1, 1, 0],K = 3,那么输出将是3,因为我们需要执行三次操作,在第一次尝试翻转……阅读更多
183 次浏览
假设我们有一个正整数数组A,如果A的子数组(连续的)中不同整数的个数恰好为K,我们可以称其为一个好的子数组。所以,如果数组是这样的[1, 2, 3, 1, 2],则有3个不同的整数:1、2和3。我们需要找到A的好的子数组的个数。所以,如果输入是这样的[1, 2, 3, 1, 4],K = 3,那么输出将是4,因为它可以形成三个具有恰好四个不同整数的子数组,它们是[1, 2, 3],[1, 2, 3, 1],……阅读更多