题解 | #乘积为正数的最长连续子数组#
乘积为正数的最长连续子数组
http://www.nowcoder.com/practice/0112b9b5a09048d89309f55ea666db91
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(new BufferedInputStream(System.in));
int n = scan.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; i++)
nums[i] = scan.nextInt();
int res = 0;
int minCount = 0, maxCount = 0;
for (int i = 0; i < n; i++) {
if (nums[i] > 0) {
maxCount++;
if (minCount > 0)
minCount++;
} else if (nums[i] < 0) {
int tmp = minCount;
minCount = maxCount + 1;
if (tmp > 0)
maxCount = tmp + 1;
else
maxCount = 0;
} else {
maxCount = 0;
minCount = 0;
}
res = Math.max(res, maxCount);
}
System.out.println(res);
}
}