用 Python 编写的通过连接另一个数组的子数组来生成数组的程序
pythonserver side programmingprogramming更新于 2025/12/1 0:12:17
假设我们有一个名为 groups 的二维数组和另一个数组 nums。我们必须检查是否可以从数组 nums 中选择 n 个不相交的子数组,使得第 i 个子数组等于 groups[i](0 索引),并且如果 i > 0,第 (i-1) 个子数组将出现在 nums 中的第 i 个子数组之前。
因此,如果输入类似 groups = [[2,-2,-2],[4,-3,0]] nums = [1,-1,0,2,-2,-2,4,-3,0],则输出将为 true,因为数组 group[0] 存在于 nums 的索引 3 到 5 之间,而 group[1] 存在于 nums 的索引 6 到 8 之间。
为了解决这个问题,我们将遵循以下步骤 −
i := 0
对于 groups 中的每个 grp,执行
对于 j 在 i 到 nums 的大小 - 1 的范围内,执行
如果nums[从索引 j 到 j+ grp 的大小] 的子数组与 grp 相同,则
i := j + grp 的大小
退出循环
否则,
返回 False
返回 True
示例
让我们看看下面的实现以便更好地理解 −
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 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

