子数组最大乘积

题目

给定一个数组,至少有一个元素。请计算子数组最大乘积是多少?

例如:

  • 给定数组 [2, 3, -2, 4]
  • 经过计算,得到最大乘积为6。子数组为[2,3]。

题目来自Leetcode。

分析

这个题目,有经验的同学,看过一遍,就知道肯定是动态规划了,可具体要如何规划呢?我想,有的同学还记得子数组的最大和吧?是不是觉得很激动,O(n)就可以解决了。一样的思路!但是不好意思,错了!

错在哪里呢?乘法口诀还记得么?负负得正,就可恶在这里。在加法里,负负可得不到正。

Read More