在Python中查找连续子数组的最大乘积的程序
假设我们有一个名为nums的数组,我们必须找到一个数组(包含至少一个数字)中具有最大乘积的连续子数组元素的乘积。因此,如果数组为[1,9,2,0,2,5],则输出为18,因为连续的子数组[1,9,2]具有最大乘积。
为了解决这个问题,我们将遵循以下步骤-
max_list:=大小数字列表,并用0填充
min_list:=大小num的列表,并用0填充
min_list:=大小num的列表,并用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([1,9,2,0,2,5]))输入值
[1,9,2,0,2,5]
输出结果
18
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短