# Solving Leetcode Interviews in Seconds with AI: Find Common Elements Between Two Arrays


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "2956" 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
	> You are given two integer arrays nums1 and nums2 of sizes n and m, respectively. Calculate the following values:  answer1 : the number of indices i such that nums1[i] exists in nums2. answer2 : the number of indices i such that nums2[i] exists in nums1.  Return [answer1,answer2].   Example 1:  Input: nums1 = [2,3,2], nums2 = [1,2] Output: [2,1] Explanation:   Example 2:  Input: nums1 = [4,3,2,3,1], nums2 = [2,2,5,2,3,6] Output: [3,4] Explanation: The elements at indices 1, 2, and 3 in nums1 exist in nums2 as well. So answer1 is 3. The elements at indices 0, 1, 3, and 4 in nums2 exist in nums1. So answer2 is 4.  Example 3:  Input: nums1 = [3,4,2,3], nums2 = [1,5] Output: [0,0] Explanation: No numbers are common between nums1 and nums2, so answer is [0,0].    Constraints:  n == nums1.length m == nums2.length 1 <= n, m <= 100 1 <= nums1[i], nums2[i] <= 100  

	# Explanation
	*   **Utilize a Set:** Convert `nums2` into a set for efficient `O(1)` average time complexity lookups.
*   **Iterate and Count:** Iterate through `nums1` and `nums2`, checking if each element exists in the respective set created in the previous step.
*   **Return Counts:** Store the counts of occurrences and return them as a list.

*   **Time Complexity:** O(n + m), where n and m are the lengths of `nums1` and `nums2` respectively. **Space Complexity:** O(min(n, m)), where n and m are the lengths of `nums1` and `nums2` respectively.

	
	# Code
	```python
	def common_elements(nums1: list[int], nums2: list[int]) -> list[int]:
    """
    Given two integer arrays nums1 and nums2 of sizes n and m, respectively.
    Calculate the following values:
    answer1 : the number of indices i such that nums1[i] exists in nums2.
    answer2 : the number of indices i such that nums2[i] exists in nums1.
    Return [answer1,answer2].
    """

    set2 = set(nums2)
    set1 = set(nums1)

    answer1 = 0
    answer2 = 0

    for num in nums1:
        if num in set2:
            answer1 += 1

    for num in nums2:
        if num in set1:
            answer2 += 1

    return [answer1, answer2]
	```
			
