Leetcode 1690 Solution
This article provides solution to leetcode question 1690 (maximum-length-of-subarray-with-positive-product)
Access this page by simply typing in "lcs 1690" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/maximum-length-of-subarray-with-positive-product
Solution
class Solution:
def getMaxLen(self, nums: List[int]) -> int:
ans = 0
pos1 = -1
pos2 = -1
positive_cnt = 0
negative_cnt = 0
for i, num in enumerate(nums):
if num == 0:
pos1 = i
pos2 = -1
negative_cnt = 0
continue
if num < 0:
negative_cnt += 1
if negative_cnt == 1:
pos2 = i
if negative_cnt % 2 == 0:
ans = max(ans, i - pos1)
else:
if pos2 != -1:
ans = max(ans, i - pos2)
return ans