通过在 Python 中连接另一个数组的子数组来生成数组的程序

假设我们有一个称为组的二维数组和另一个数组 nums。我们必须检查我们是否可以从数组 nums 中选择 n 个不相交的子数组,使得第 i 个子数组等于 group[i](0-indexed),如果 i > 0,则第 (i-1) 个子数组将出现在之前nums 中的第 i 个子数组。

因此,如果输入类似于 groups = [[2,-2,-2],[4,-3,0]] nums = [1,-1,0,2,-2,-2,4,- 3,0],那么输出将为真,因为数组 group[0] 存在于 nums 的索引 3 到 5 中,而 group[1] 存在于 nums 的索引 6 到 8。

示例

让我们看看以下实现以获得更好的理解 -

def solve(groups, nums):

   i = 0

   for grp in groups:

      for j in range(i, len(nums)):

         if nums[j:j+len(grp)] == grp:

            i = j + len(grp)

            break

      else:

         return False

   return True

groups = [[2,-2,-2],[4,-3,0]]

nums = [1,-1,0,2,-2,-2,4,-3,0]

print(solve(groups, nums))

输入

[[2,-2,-2],[4,-3,0]], [1,-1,0,2,-2,-2,4,-3,0]
输出结果
True

以上是 通过在 Python 中连接另一个数组的子数组来生成数组的程序 的全部内容, 来源链接: utcz.com/z/322674.html

回到顶部