python3题解 | #连续子数组的最大乘积#
连续子数组的最大乘积
https://www.nowcoder.com/practice/fd8c819c07c9493887bfac8549c119f4
import sys # for line in sys.stdin: # a = line.split() # print(int(a[0]) + int(a[1])) n = int(input()) nums = list(map(int,input().split())) dp_min,dp_max = [0]*(n+1),[0]*(n+1) res = -9999 if n ==1: print(nums[0]) exit() for i in range(0,n): if i == 0: dp_max[0] = dp_min[0] = nums[0] else: dp_max[i] = max(dp_max[i-1]*nums[i],nums[i],dp_min[i-1]*nums[i]) dp_min[i] = min(dp_max[i-1]*nums[i],nums[i],dp_min[i-1]*nums[i]) res = max(dp_max[i],dp_min[i],res) print(res)