# Solving Leetcode Interviews in Seconds with AI: K-diff Pairs in an Array


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "532" 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 array of integers nums and an integer k, return the number of unique k-diff pairs in the array. A k-diff pair is an integer pair (nums[i], nums[j]), where the following are true:  0 <= i, j < nums.length i != j |nums[i] - nums[j]| == k  Notice that |val| denotes the absolute value of val.   Example 1:  Input: nums = [3,1,4,1,5], k = 2 Output: 2 Explanation: There are two 2-diff pairs in the array, (1, 3) and (3, 5). Although we have two 1s in the input, we should only return the number of unique pairs.  Example 2:  Input: nums = [1,2,3,4,5], k = 1 Output: 4 Explanation: There are four 1-diff pairs in the array, (1, 2), (2, 3), (3, 4) and (4, 5).  Example 3:  Input: nums = [1,3,1,5,4], k = 0 Output: 1 Explanation: There is one 0-diff pair in the array, (1, 1).    Constraints:  1 <= nums.length <= 104 -107 <= nums[i] <= 107 0 <= k <= 107  

	# Explanation
	Here's an efficient solution to find the number of unique k-diff pairs in an array:

*   **Hashing for Efficiency:** Use a hash map (dictionary in Python) to store the frequency of each number in the input array. This allows for O(1) lookups when searching for pairs.
*   **Handle k = 0 separately:** If k is 0, we only need to count the numbers that appear more than once.
*   **Avoid Duplicates:** Use a set to keep track of the unique pairs that have already been counted to avoid overcounting.

*   **Time Complexity:** O(n), where n is the length of the input array.
*   **Space Complexity:** O(n), where n is the length of the input array (for the hash map and the set).

	
	# Code
	```python
	def k_diff_pairs(nums, k):
    """
    Finds the number of unique k-diff pairs in an array.

    Args:
        nums: A list of integers.
        k: An integer representing the difference.

    Returns:
        The number of unique k-diff pairs in the array.
    """

    count = 0
    seen_pairs = set()
    num_counts = {}

    for num in nums:
        num_counts[num] = num_counts.get(num, 0) + 1

    if k == 0:
        for num, freq in num_counts.items():
            if freq > 1:
                count += 1
    else:
        for num in num_counts:
            if num + k in num_counts:
                pair = tuple(sorted((num, num + k)))
                if pair not in seen_pairs:
                    count += 1
                    seen_pairs.add(pair)

    return count
	```
			
