leetcode hot100 乘积最大子数组
152. 乘积最大子数组
已解答
中等
相关标签
相关企业
给你一个整数数组 nums
,请你找出数组中乘积最大的非空连续
子数组
(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。
测试用例的答案是一个 32-位 整数。
class Solution(object):
def maxProduct(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
max_list=[nums[0]]
min_list =[nums[0]]
for i in range(1,len(nums)):
max_t = max(nums[i]*max_list[-1],nums[i]*min_list[-1],nums[i])
min_t = min(nums[i]*max_list[-1],nums[i]*min_list[-1],nums[i])
max_list.append(max_t)
min_list.append(min_t)
return max(max_list)
由于又正负值的存在,所以这里就要加上一个最小值