题目描述:
题解:
动态规划
1.维护两个变量,maxres和minres,在nums[i]位置的maxres=max(maxres*nums[i],nums[i])
minres = min(minres*nums[i],nums[i])
2.如果nums[i]为负数,交换minres和maxres的值。
class Solution: def maxProduct(self, nums: List[int]) -> int: maxres = 1 minres = 1 result = -sys.maxsize - 1 for i in range(0,len(nums)): if nums[i]<0: tmp = maxres maxres = minres minres = tmp maxres = max(maxres*nums[i],nums[i]) minres = min(minres*nums[i],nums[i]) result = max(result,maxres) return result