# Solving Leetcode Interviews in Seconds with AI: Minimum Consecutive Cards to Pick Up


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "2260" 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 an integer array cards where cards[i] represents the value of the ith card. A pair of cards are matching if the cards have the same value. Return the minimum number of consecutive cards you have to pick up to have a pair of matching cards among the picked cards. If it is impossible to have matching cards, return -1.   Example 1:  Input: cards = [3,4,2,3,4,7] Output: 4 Explanation: We can pick up the cards [3,4,2,3] which contain a matching pair of cards with value 3. Note that picking up the cards [4,2,3,4] is also optimal.  Example 2:  Input: cards = [1,0,5,3] Output: -1 Explanation: There is no way to pick up a set of consecutive cards that contain a pair of matching cards.    Constraints:  1 <= cards.length <= 105 0 <= cards[i] <= 106  

	# Explanation
	Here's the breakdown of the solution:

*   **Hash Map for Efficient Lookups:** Use a hash map (dictionary in Python) to store the last seen index of each card value. This allows for O(1) average-case time complexity when checking if a card has been seen before.

*   **Iterate and Update Minimum Length:** Iterate through the `cards` array. If a card is encountered that has already been seen, calculate the distance between the current index and the previously seen index. Update the minimum length found so far.

*   **Handle No Matching Cards:** If no matching cards are found after iterating through the entire array, return -1.

*   **Runtime & Storage Complexity:** O(n) time complexity, O(n) space complexity

	
	# Code
	```python
	def minimumCardPickup(cards):
    """
    Finds the minimum number of consecutive cards to pick up to have a pair of matching cards.

    Args:
      cards: A list of integers representing the values of the cards.

    Returns:
      The minimum number of consecutive cards to pick up to have a pair of matching cards, or -1 if it is impossible.
    """

    last_seen = {}
    min_length = float('inf')

    for i, card in enumerate(cards):
        if card in last_seen:
            length = i - last_seen[card] + 1
            min_length = min(min_length, length)
        last_seen[card] = i

    if min_length == float('inf'):
        return -1
    else:
        return min_length
	```
			
