检查具有给定产品的子数组是否存在于 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
热门推荐
10 读书祝福语女生短句简短
11 感谢同事新婚祝福语简短
12 感谢教官文案祝福语简短
13 员工聚会蛋糕祝福语简短
14 元宵发客户祝福语简短
15 给团队信心祝福语简短
16 医美的祝福语大全简短
17 异国姻缘的祝福语简短
18 兄妹拍照祝福语简短的话