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. 标签验证器

LeetCode 908 最小差值I[数学] HERODING的LeetCode之路

上岸算法 | LeetCode Weekly Contest 第 256 场周赛解题报告