思路: 首先乘积为正数,只取决于因数的正负和是否为0,所以所有数只需分为正数、负数和0三种而不用关心具体数值。 然后是递推过程,需要用两个变量dpmaxn和dpfmaxn记录以当前数结尾的乘积为正/负数的连续子数组最长长度,然后用一个变量maxn记录最大的dpmaxn值,最后这个maxn就是我们要求得的结果。 时间复杂度:O(n) 空间复杂度:O(1) 代码如下,目前用时和内存占用都是最少的 #include<cstdio> using namespace std; template <typename&nb...