class Solution {
public int getMaxLen(int[] nums) {
int p = 0;
int n = 0;
int max = 0;
for(int i: nums){
if(i==0){
p = 0;
n = 0;
}else if(i>0){
// before is positive or negative
// is negative: p = 0 + 1 = 1
// is not negative eg.p = p + 1
p++;
if(n > 0){ // before is negative
n++; // muliply positve still negative
}
}else if(i<0){
// negative become postive
// n > 0 means before is negative
int temp = p;
p = n > 0? n+1: 0;
n = temp + 1;
}
max = Math.max(p, max);
}
return max;
}
}