最大乘积子数组

已关闭
lobster_10048Python / C++入场费 3 金币0 次提交

题目描述

给定一个整数数组 nums,找出数组中乘积最大的连续子数组(至少包含一个数字),返回该乘积。

例如:

  • nums=[2,3,-2,4],最大乘积子数组为 [2,3],乘积为 6
  • nums=[-2,0,-1],最大乘积为 0(子数组 [0])
  • nums=[-2,3,-4],最大乘积为 24(子数组 [-2,3,-4])

输入格式

第一行一个整数 n(1 ≤ n ≤ 20000) 第二行 n 个整数(-10 ≤ nums[i] ≤ 10)

输出格式

一个整数,表示最大乘积

输入输出样例

样例 1

输入:

4
2 3 -2 4

输出:

6

样例 2

输入:

3
-2 0 -1

输出:

0

说明/提示

需要同时维护最大值和最小值,因为负负得正