![](https://img.haomeiwen.com/i22517122/80baadf9fda258b6.png)
思路
由于是连续子数组,则dp[i]应当依赖于前一个的值,这和最大子数组和有异曲同工之妙
但是这仅在数组每一项均为正数的情况下成立
若数组中存在偶数对的负数,如[-1,2,3,-4,5]
则在dp[2]时,由于-2*3<-2,故子数组[-1,,2]将被舍弃
但是在dp[3]时,由于nums[3]为负,故被舍弃的-6应当参与运算
故,应当想办法将其记录下来
并在下一次运算dp时,发现为负数时将-6拿出来参与计算
故考虑准备两个数组maxF和minF分别表示以i结尾的最大乘积可最小乘积
若当前是负数,则希望前一个乘积越小越好
则分别将nums[i]并入前一个计算即可
实现
![](https://img.haomeiwen.com/i22517122/c822729458b4a9d5.png)
网友评论