# Solving Leetcode Interviews in Seconds with AI: Maximum Tastiness of Candy Basket


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "2517" 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 array of positive integers price where price[i] denotes the price of the ith candy and a positive integer k. The store sells baskets of k distinct candies. The tastiness of a candy basket is the smallest absolute difference of the prices of any two candies in the basket. Return the maximum tastiness of a candy basket.   Example 1:  Input: price = [13,5,1,8,21,2], k = 3 Output: 8 Explanation: Choose the candies with the prices [13,5,21]. The tastiness of the candy basket is: min(|13 - 5|, |13 - 21|, |5 - 21|) = min(8, 8, 16) = 8. It can be proven that 8 is the maximum tastiness that can be achieved.  Example 2:  Input: price = [1,3,1], k = 2 Output: 2 Explanation: Choose the candies with the prices [1,3]. The tastiness of the candy basket is: min(|1 - 3|) = min(2) = 2. It can be proven that 2 is the maximum tastiness that can be achieved.  Example 3:  Input: price = [7,7,7,7], k = 2 Output: 0 Explanation: Choosing any two distinct candies from the candies we have will result in a tastiness of 0.    Constraints:  2 <= k <= price.length <= 105 1 <= price[i] <= 109  

	# Explanation
	Here's the breakdown of the approach, complexity, and the Python code:

*   **High-Level Approach:**
    *   Sort the `price` array to make it easier to find candies with a certain minimum difference.
    *   Use binary search to find the maximum possible tastiness. The search space is between 0 and the maximum possible difference between two prices.
    *   For a given tastiness value, check if it's possible to form a basket of `k` candies where the minimum difference between any two candies is at least the given tastiness.

*   **Complexity:**
    *   Runtime Complexity: O(N log N) due to sorting and the binary search which involves O(N) work inside the loop.
    *   Storage Complexity: O(1) (excluding the space for sorting, which might be O(log N) in some implementations).

*   **Code:**

	
	# Code
	```python
	def maxTastiness(prie, k):    price.sort()

    def isPossible(tastiness):
        count = 1
        prev = price[0]
        for i in range(1, len(price)):
            if price[i] - prev >= tastiness:
                count += 1
                prev = price[i]
        return count >= k

    left, right = 0, price[-1] - price[0]
    ans = 0
    while left <= right:
        mid = (left + right) // 2
        if isPossible(mid):
            ans = mid
            left = mid + 1
        else:
            right = mid - 1
    return ans
	```
			
