检查具有给定产品的子数组是否存在于 Python 中的数组中
假设我们有一个名为 nums 的数组,它包含正数和负数。我们还有另一个值 k。我们必须检查任何乘积为 k 的子数组是否存在于数组中。
因此,如果输入类似于 nums = [-2,-1,1,3,5,8], k = 6,则输出将为 True,因为子数组为 [-2,-1,3]
为了解决这个问题,我们将按照以下步骤操作 -
最小值:= nums[0],最大值:= nums[0]
prod_max := nums[0]
对于范围 1 到 nums - 1 大小的 i,请执行
返回真
交换最大值和最小值
如果 nums[i] < 0,则
最大值 := nums[i] 和 (maximum * nums[i]) 的最大值
最小值 := nums[i] 和 (minimum * nums[i]) 的最小值
如果最小值或最大值与 k 相同,则
prod_max := prod_max 和最大值的最大值
返回错误
让我们看看以下实现以获得更好的理解 -
示例代码
def solve(nums, k):minimum = nums[0]
maximum = nums[0]
prod_max = nums[0]
for i in range( 1, len(nums)):
if nums[i] < 0:
maximum, minimum = minimum, maximum
maximum = max(nums[i], maximum * nums[i])
minimum = min(nums[i], minimum * nums[i])
if minimum == k or maximum == k:
return True
prod_max = max(prod_max, maximum)
return False
nums = [-2,-1,1,3,5,8]
k = 6
print(solve(nums, k))
输入
[-2,-1,1,3,5,8], 6输出结果
True
以上是 检查具有给定产品的子数组是否存在于 Python 中的数组中 的全部内容, 来源链接: utcz.com/z/335653.html