Python中的最大产品子数组
假设我们有一个名为nums的整数数组,我们必须在一个具有最大乘积的数组(至少包含一个数字)中找到连续的子数组。因此,如果数组为[2,3,-2,4],则输出将为6,因为连续的子数组[2,3]具有最大乘积。
为了解决这个问题,我们将遵循以下步骤-
max_list:=大小数字列表,并用0填充
min_list:=大小num的列表,并用0填充
max_list [0]:= nums [0]和min_list [0]:= nums [0]
对于范围从1到nums的i
max_list [i] = max_list [i-1] * nums [i],min_list [i-1] * nums [i]和nums [i]的最大值
min_list [i] =最小值min_list [i-1] * nums [i],nums [i],max_list [i-1] * nums [i]
返回max_list的最大值
让我们看下面的实现以更好地理解-
示例
class Solution(object):def maxProduct(self, nums):
max_list = [0] * len(nums)
min_list = [0] * len(nums)
max_list[0] = nums[0]
min_list[0] = nums[0]
for i in range(1,len(nums)):
max_list[i] = max(max(max_list[i-1]*nums[i],min_list[i-1]*nums[i]),nums[i])
min_list[i] = min(min(min_list[i-1]*nums[i],nums[i]),max_list[i-1]*nums[i])
return max(max_list)
ob1 = Solution()print(ob1.maxProduct([2,3,-2,4,-5,-6,2]))
输入项
[2,3,-2,4,-5,-6,2]
输出结果
240
以上是 Python中的最大产品子数组 的全部内容, 来源链接: utcz.com/z/334918.html