当前位置:首页 > 编程笔记 > 正文
已解决

学生分数的最小差值

来自网友在路上 190890提问 提问时间:2023-11-01 20:32:36阅读次数: 90

最佳答案 问答题库908位专家为你答疑解惑

给你一个 下标从 0 开始 的整数数组 nums ,其中 nums[i] 表示第 i 名学生的分数。另给你一个整数 k

从数组中选出任意 k 名学生的分数,使这 k 个分数间 最高分最低分差值 达到 最小化

返回可能的 最小差值

示例 1:

输入:nums = [90], k = 1
输出:0
解释:选出 1 名学生的分数,仅有 1 种方法:
[90] 最高分和最低分之间的差值是 90 - 90 = 0 可能的最小差值是 0

示例 2:

输入:nums = [9,4,1,7], k = 2
输出:2
解释:选出 2 名学生的分数,有 6 种方法:
[9,4,1,7] 最高分和最低分之间的差值是 9 - 4 = 5
[9,4,1,7] 最高分和最低分之间的差值是 9 - 1 = 8
[9,4,1,7] 最高分和最低分之间的差值是 9 - 7 = 2
[9,4,1,7] 最高分和最低分之间的差值是 4 - 1 = 3
[9,4,1,7] 最高分和最低分之间的差值是 7 - 4 = 3
[9,4,1,7] 最高分和最低分之间的差值是 7 - 1 = 6
可能的最小差值是 2

提示:

  • 1 <= k <= nums.length <= 1000
  • 0 <= nums[i] <= 10^5

题目来源: https://leetcode.cn/problems/minimum-difference-between-highest-and-lowest-of-k-scores/description/

解题方法:

注:这里并非是求两个数据差的最小绝对值,而是滑动寻找

class Solution {/*** @param Integer[] $nums* @param Integer $k* @return Integer*/function minimumDifference($nums, $k) {rsort($nums);$min = $nums[0];for($i = 0; $i <= count($nums) - $k; $i++){$end_k = $i + $k - 1;$m = $nums[$i] - $nums[$end_k];if($m < $min){$min = $m;}}return $min;}
}
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"学生分数的最小差值":http://eshow365.cn/6-29594-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!