# Solving Leetcode Interviews in Seconds with AI: Maximum Product of Three Numbers


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "628" 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 integer array nums, find three numbers whose product is maximum and return the maximum product.   Example 1: Input: nums = [1,2,3] Output: 6 Example 2: Input: nums = [1,2,3,4] Output: 24 Example 3: Input: nums = [-1,-2,-3] Output: -6    Constraints:  3 <= nums.length <= 104 -1000 <= nums[i] <= 1000  

	# Explanation
	Here's the breakdown of the solution:

*   **Identify Key Scenarios:** The maximum product can arise from either the product of the three largest numbers or the product of the two smallest (most negative) numbers and the largest positive number.
*   **Efficiently Find Extremes:** Use a linear scan to find the two smallest and the three largest numbers in the array, without fully sorting it, thus optimizing performance.
*   **Compare Products:** Calculate both potential maximum products and return the larger of the two.

*   Runtime Complexity: O(n), Storage Complexity: O(1)

	
	# Code
	```python
	def maximumProduct(nums):
    """
    Finds the maximum product of three numbers in an integer array.

    Args:
        nums: An integer array.

    Returns:
        The maximum product of three numbers in the array.
    """

    min1 = float('inf')
    min2 = float('inf')
    max1 = float('-inf')
    max2 = float('-inf')
    max3 = float('-inf')

    for n in nums:
        if n <= min1:
            min2 = min1
            min1 = n
        elif n <= min2:
            min2 = n

        if n >= max1:
            max3 = max2
            max2 = max1
            max1 = n
        elif n >= max2:
            max3 = max2
            max2 = n
        elif n >= max3:
            max3 = n

    return max(min1 * min2 * max1, max1 * max2 * max3)
	```
			
