# Solving Leetcode Interviews in Seconds with AI: Intersection of Two Arrays


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "349" 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 two integer arrays nums1 and nums2, return an array of their intersection. Each element in the result must be unique and you may return the result in any order.   Example 1:  Input: nums1 = [1,2,2,1], nums2 = [2,2] Output: [2]  Example 2:  Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4] Output: [9,4] Explanation: [4,9] is also accepted.    Constraints:  1 <= nums1.length, nums2.length <= 1000 0 <= nums1[i], nums2[i] <= 1000  

	# Explanation
	Here's a breakdown of the solution and the code:

*   **High-Level Approach:**
    *   Convert one of the arrays into a set for efficient lookups (checking if an element exists).
    *   Iterate through the other array and check if each element is present in the set.
    *   If an element is present in the set, add it to the result and remove it from the set to ensure uniqueness.

*   **Complexity:**
    *   Runtime Complexity: O(m + n), where n and m are the lengths of the input arrays.
    *   Storage Complexity: O(min(m, n)) in the worst case, due to storing the smaller array as a set.

	
	# Code
	```python
	def intersection(nums1: list[int], nums2: list[int]) -> list[int]:
    """
    Given two integer arrays nums1 and nums2, return an array of their intersection.
    Each element in the result must be unique and you may return the result in any order.

    Example 1:
    Input: nums1 = [1,2,2,1], nums2 = [2,2]
    Output: [2]

    Example 2:
    Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
    Output: [9,4]
    """

    if len(nums1) > len(nums2):
        nums1, nums2 = nums2, nums1

    set1 = set(nums1)
    result = []

    for num in nums2:
        if num in set1:
            result.append(num)
            set1.remove(num)

    return result
	```
			
