# Solving Leetcode Interviews in Seconds with AI: Minimum Difference Between Highest and Lowest of K Scores


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "1984" 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 a 0-indexed integer array nums, where nums[i] represents the score of the ith student. You are also given an integer k. Pick the scores of any k students from the array so that the difference between the highest and the lowest of the k scores is minimized. Return the minimum possible difference.   Example 1:  Input: nums = [90], k = 1 Output: 0 Explanation: There is one way to pick score(s) of one student: - [90]. The difference between the highest and lowest score is 90 - 90 = 0. The minimum possible difference is 0.  Example 2:  Input: nums = [9,4,1,7], k = 2 Output: 2 Explanation: There are six ways to pick score(s) of two students: - [9,4,1,7]. The difference between the highest and lowest score is 9 - 4 = 5. - [9,4,1,7]. The difference between the highest and lowest score is 9 - 1 = 8. - [9,4,1,7]. The difference between the highest and lowest score is 9 - 7 = 2. - [9,4,1,7]. The difference between the highest and lowest score is 4 - 1 = 3. - [9,4,1,7]. The difference between the highest and lowest score is 7 - 4 = 3. - [9,4,1,7]. The difference between the highest and lowest score is 7 - 1 = 6. The minimum possible difference is 2.   Constraints:  1 <= k <= nums.length <= 1000 0 <= nums[i] <= 105  

	# Explanation
	Here's the solution to find the minimum difference between the highest and lowest scores of k students, along with the explanation and code:

*   **Sort the array:** Sorting allows us to consider consecutive subarrays of size `k`.
*   **Iterate through subarrays:** Slide a window of size `k` through the sorted array, calculating the difference between the last and first element in the window.
*   **Minimize the difference:** Keep track of the minimum difference found so far.

*   **Runtime Complexity:** O(n log n) due to sorting.  **Storage Complexity:** O(1) (in-place sorting if available, otherwise O(n) for some sorting algorithms).

	
	# Code
	```python
	def minimumDifference(nums, k):
    nums.sort()
    min_diff = float('inf')
    for i in range(len(nums) - k + 1):
        min_diff = min(min_diff, nums[i+k-1] - nums[i])
    return min_diff
	```
			
