Maximum Length of Subarray With Positive Product LeetCode solution in C++

1
class Solution {
2
public:
3
int getMaxLen(vector<int> &nums) {
4
int ans = 0;
5
int lprod = 1, rprod = 1;
6
int llen = 0, rlen = 0;
7
int n = nums.size();
8
for (int i = 0; i < n; i++) {
9
lprod *= nums[i] != 0 ? nums[i] / abs(nums[i]) : 0;
10
rprod *= nums[n - 1 - i] != 0 ? nums[n - 1 - i] / abs(nums[n - 1 - i]) : 0;
11
if (lprod != 0) llen++;
12
if (rprod != 0) rlen++;
13
if (lprod > 0) ans = max(ans, llen);
14
if (rprod > 0) ans = max(ans, rlen);
15
if (lprod == 0) {
16
lprod = 1;
17
llen = 0;
18
}
19
if (rprod == 0) {
20
rlen = 0;
21
rprod = 1;
22
}
23
}
24
return ans;
25
}
26
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0