# Solving Leetcode Interviews in Seconds with AI: X of a Kind in a Deck of Cards


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "914" 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 deck where deck[i] represents the number written on the ith card. Partition the cards into one or more groups such that:  Each group has exactly x cards where x > 1, and All the cards in one group have the same integer written on them.  Return true if such partition is possible, or false otherwise.   Example 1:  Input: deck = [1,2,3,4,4,3,2,1] Output: true Explanation: Possible partition [1,1],[2,2],[3,3],[4,4].  Example 2:  Input: deck = [1,1,1,2,2,2,3,3] Output: false Explanation: No possible partition.    Constraints:  1 <= deck.length <= 104 0 <= deck[i] < 104  

	# Explanation
	Here's the breakdown of the solution:

*   **Count Card Frequencies:** Determine how many times each number appears in the `deck`. This is essential to know the size of potential groups.
*   **Find the Greatest Common Divisor (GCD):** The size of any valid group must be a divisor of the count of each card number. Therefore, find the GCD of all the counts. If the GCD is greater than 1, it means there is a common group size that can divide all the card counts.
*   **Check if GCD > 1:** If the GCD calculated is greater than 1, it means a partition into groups of size GCD is possible.

*   Runtime Complexity: O(N + M log M), where N is the length of the deck and M is the number of unique elements in the deck. Storage Complexity: O(M), where M is the number of unique elements in the deck.

	
	# Code
	```python
	from collections import Counter
from math import gcd

def hasGroupsSizeX(deck: list[int]) -> bool:
    """
    Determines if the given deck of cards can be partitioned into groups such that each group has the same size (x > 1) and all cards in a group have the same number.

    Args:
        deck: A list of integers representing the numbers on the cards.

    Returns:
        True if the deck can be partitioned as described, False otherwise.
    """
    counts = Counter(deck)
    group_size = 0
    for count in counts.values():
        group_size = gcd(group_size, count)

    return group_size > 1
	```
			
