题目链接:Submit - Codeforces
解题思路:
题目大概意思就是在一个数组里找n个数里的最大值减最小值的最小值,先排序,然后将第i + n - 1项减去第i项与最小值作比较,输出最小值即可,注意循环结束边界。
下面是c++代码:
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n, m, Min = 10000;
cin >> n >> m;
int* arr = new int[m];
for (int i = 0; i < m; i++) {
cin >> arr[i];
}
sort(arr, arr + m);
for (int i = 0; i < m - n + 1; i++) {
Min = min(Min, arr[i + n - 1] - arr[i]);
}
cout << Min;
return 0;
}