# Solving Leetcode Interviews in Seconds with AI: Maximum Length of Subarray With Positive Product


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "1567" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like [Chatmagic](https://www.chatmagic.app), we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

	# Problem Statement
	> Given an array of integers nums, find the maximum length of a subarray where the product of all its elements is positive. A subarray of an array is a consecutive sequence of zero or more values taken out of that array. Return the maximum length of a subarray with positive product.   Example 1:  Input: nums = [1,-2,-3,4] Output: 4 Explanation: The array nums already has a positive product of 24.  Example 2:  Input: nums = [0,1,-2,-3,-4] Output: 3 Explanation: The longest subarray with positive product is [1,-2,-3] which has a product of 6. Notice that we cannot include 0 in the subarray since that'll make the product 0 which is not positive. Example 3:  Input: nums = [-1,-2,-3,0,1] Output: 2 Explanation: The longest subarray with positive product is [-1,-2] or [-2,-3].    Constraints:  1 <= nums.length <= 105 -109 <= nums[i] <= 109  

	# Explanation
	Here's a solution to find the maximum length of a subarray with a positive product, along with explanations and code:

*   **High-Level Approach:**
    *   Iterate through the array, tracking the lengths of the current positive and negative product subarrays.
    *   When encountering a zero, reset the lengths of both positive and negative subarrays.
    *   Update the maximum positive length found so far.

*   **Complexity:**
    *   Runtime: O(n), where n is the length of the input array.
    *   Storage: O(1) (constant).

	
	# Code
	```python
	def max_positive_subarray_len(nums):
    """
    Finds the maximum length of a subarray with a positive product.

    Args:
        nums: A list of integers.

    Returns:
        The maximum length of a subarray with a positive product.
    """

    max_len = 0
    pos_len = 0  # Length of current positive product subarray
    neg_len = 0  # Length of current negative product subarray

    for num in nums:
        if num > 0:
            pos_len += 1
            neg_len = (neg_len + 1) if neg_len > 0 else 0
        elif num < 0:
            temp = pos_len
            pos_len = (neg_len + 1) if neg_len > 0 else 0
            neg_len = temp + 1
        else:
            pos_len = 0
            neg_len = 0

        max_len = max(max_len, pos_len)

    return max_len
	```
			
