leetcode-学生分数最小的差值
题目描述
给你一个 下标从 0 开始 的整数数组 nums ,其中 nums[i] 表示第 i 名学生的分数。另给你一个整数 k 。
从数组中选出任意 k 名学生的分数,使这 k 个分数间 最高分 和 最低分 的 差值 达到 最小化 。
返回可能的 最小差值 。
思路:先对数组进行排序,相邻的元素肯定差值最小,就选择相邻的k个元素,循环一遍即找出最小的差值。
class Solution {
public int minimumDifference(int[] nums, int k) {
Arrays.sort(nums);
int res = 100000;
if(nums.length <= 1){
return 0;
}
for(int i = 0;i<nums.length-k+1;i++){
int fast = i+k-1;
res = Math.min(res,nums[fast] - nums[i]);
}
return res;
}
}