LeetCode 5854. 学生分数的最小差值(排序+双指针)
Posted live4m
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 5854. 学生分数的最小差值(排序+双指针)相关的知识,希望对你有一定的参考价值。
题意:
给你一个 下标从 0 开始 的整数数组 nums ,其中 nums[i] 表示第 i 名学生的分数。另给你一个整数 k 。
从数组中选出任意 k 名学生的分数,使这 k 个分数间 最高分 和 最低分 的 差值 达到 最小化 。
返回可能的 最小差值 。
数据范围:
1 <= k <= nums.length <= 1000
0 <= nums[i] <= 1e5
解法:
排序后滑动窗口即可,窗口大小为k.
code:
class Solution {
public:
int minimumDifference(vector<int>& a, int k) {
sort(a.begin(),a.end());
int n=a.size();
int ans=1e9;
for(int i=k-1;i<n;i++){
ans=min(ans,a[i]-a[i-k+1]);
}
return ans;
}
};
以上是关于LeetCode 5854. 学生分数的最小差值(排序+双指针)的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode刷题100天—5854. 学生分数的最小差值(双指针)—day22
第 256 场力扣周赛(状态压缩+dp,二进制子序列的动规940)
LeetCode 908. 最小差值 I / 1305. 两棵二叉搜索树中的所有元素 / 591. 标签验证器