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)
查看15道真题和解析