142 次查看
假设我们有一个数组 arr,它包含从 1 到 n 的数字的排列。如果我们有一个大小为 n 的二进制字符串,并且最初其所有位都设置为 0。现在,在从 1 到 n 的每个步骤 i(二进制字符串和 arr 的索引都从 1 开始)中,位置 arr[i] 的位设置为 1。我们还有一个值 m,我们需要找到存在大小为 m 的 1 的组的最新步骤。这里,1 的组是指 1 的连续子串…… 阅读更多
247 次查看
假设我们有以下函数定义:def modify(arr, op, index): if op == 0: arr[index] += 1 if op == 1: for i in range(len(arr)): arr[i] *=2 我们必须找到从相同大小的零数组生成给定数组 nums 所需的最小函数调用次数?因此,如果输入类似于 nums = [1, 5, 3],则输出将为 7,因为最初所有元素都是 0,[0, 0, 0] 在第一步中,将第二个元素增加 1,因此数组为 [0, 1, 0] 将第二个元素加倍…… 阅读更多
402 次查看
假设我们有一个有向无环图,有 n 个顶点,节点编号从 0 到 n-1,图由边列表表示,其中 edges[i] = (u, v) 表示从节点 u 到节点 v 的有向边。我们必须找到一个最小的顶点集,从中可以到达图中的所有节点。(我们可以按任何顺序返回顶点)。因此,如果输入是这样的,则输出将是 [0, 2, 3],因为这两个顶点无法从任何其他顶点到达,所以如果我们从它们开始,我们可以覆盖所有…… 阅读更多
208 次查看
假设我们有一个值 n,考虑一个具有 n 个元素的数组 nums,其中对于所有 i,arr[i] = (2*i)+1。现在,在一个操作中,我们可以选择两个索引 x 和 y,其中 0 =0,doans:= ans + (n-j)q := q - 1j := j + 2return ans让我们看看下面的实现以更好地理解——示例 实时演示def solve(n): ans=0 if n==1: return ans q=(n//2)-1 j=1 while q>=0: ans=ans+(n-j) q-=1 j+=2 return ans n = 4 print(solve(n))输入4输出4
146 次查看
假设我们有一个数组 nums 和另一个称为 target 的值。现在我们必须找到最大数量的非空非重叠子数组,使得每个不同子数组的值之和与 target 相同。因此,如果输入类似于 nums = [3, 2, 4, 5, 2, 1, 5] target = 6,则输出将为 2,因为有两个子数组 [2, 4] 和 [1, 5] 的和与 6 相同。为了解决这个问题,我们将遵循以下步骤:t := 一个包含单个元素 0 的新集合temp := 0ans:= 0对于 nums 中的每个 i,dotemp…… 阅读更多
306 次查看
假设我们有两个正值 n 和 k,现在我们可以使用以下规则创建一个二进制字符串 S_n:S_1 = 0S_i = S_i-1 连接 "1" 连接 reverse(invert(S_i-1)) 对于 i > 1 这里 reverse(x) 返回反转的字符串 x,而 invert(x) 翻转 x 中的所有位。以下是四个此类字符串的示例S_1 = "0"S_2 = "011"S_3 = "0111001"S_4 = "011100110110001" 我们必须找到 S_n 中的第 k 位。因此,如果输入类似于 n = 4 k = 10,则输出将为 1,因为 S_4 = "011100110110001",所以第 10 位是 1(第一位在…… 阅读更多
728 次查看
假设我们有一个包含左括号和右括号 '(' 和 ')' 的字符串 s。当满足以下条件时,我们可以说括号字符串是平衡的:任何左括号 '(' 都有两个连续的右括号 '))' 对应。左括号 '(' 必须在对应的两个连续右括号 '))' 之前。例如,“())”、“())(())))”是平衡的,但“)()”、“()))”不是。如果我们有这样的字符串,我们必须计算括号(左括号或右括号)的数量以使字符串平衡。因此,如果输入类似于 s = "(())))))",则输出将为 1,因为如果我们将它分解,我们可以…… 阅读更多
152 次查看
假设我们有两个字符串 s 和 t,我们必须检查 s 是否可以在 k 步或更少步数内转换为 t。在第 i 步,您可以执行以下操作。在 s 中选择任何索引 j(从 1 开始),使得 1
245 次查看
假设我们有一个 n x n 的二进制矩阵。我们可以对其执行一个操作,例如,一步一步地选择两行相邻的行并交换它们。我们必须计算所需的最少交换次数,以便矩阵主对角线上方的所有节点都是 0。如果没有这样的解决方案,则返回 -1。因此,如果输入是这样的010011100,则输出将是 2,因为——为了解决这个问题,我们将遵循以下步骤:n := 矩阵的行数m := 创建一个大小为 n 的数组并用 n 填充它对于从 0 到 n 的范围内的 i…… 阅读更多
905 次查看
假设我们有一个名为 arr 的数组,它包含唯一元素,我们还有一个值 k。现在考虑一个游戏,我们取数组的前两个元素。在每一轮中,我们将 arr[0] 与 arr[1] 进行比较,较大的值获胜并保持在位置 0,较小的值移到数组的末尾。当某个值连续获胜 k 轮时,游戏将结束。我们必须找到数组中的获胜者。因此,如果输入类似于 arr = [1, 5, 6, 3, 4, 2],而 k = 3,则输出…… 阅读更多