连续子数组的最大乘积
题号:NC233357
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

输入一个长度为n的整型数组nums,数组中的一个或连续多个整数组成一个子数组。求所有子数组的乘积的最大值。
1.子数组是连续的,且最小长度为1,最大长度为n
2.长度为1的子数组,乘积视为其本身,比如[4]的乘积为4
3.该题的数据保证最大的乘积不会超过int的范围,即不超过
数据范围:



示例1

输入

复制
[3,2,-1,4]

返回值

复制
6

说明

子数组[3,2]的乘积为6,[3,2,-1,4]的乘积为-24,[4]的乘积为4,故返回6 
示例2

输入

复制
[-3,0,-2]

返回值

复制
0

说明

因为0在中间,所有包含0的子数组的乘积都为0,另外的数都是负数,所以最大乘积的子数组为[0],返回为0,因为子数组要求是连续的,所以[-3,-2]不是[-3,0,-2]的子数组,所以不能为6, 
示例3

输入

复制
[-3,2,-2]

返回值

复制
12