题解
2024-04-01 13:35:02
发布于:广东
10阅读
0回复
0点赞
先排个序,保证连续,这样差就尽量的小,再用O(m-n) 判断最小值
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int a[100005];
int main(){
int n, m;
cin >> n >> m;
for(int i = 1; i <= m; i++) cin >> a[i];
sort(a + 1, a + m + 1);
int mx = 0x3f3f3f3f;
for(int i = 1; i <= m - n + 1; i++){
//cout << a[i + n - 1] << ' ' << a[i] << endl;
mx = min(mx, a[i + n - 1] - a[i]);
}cout << mx;
return 0;
}
时间复杂度:
全部评论 1
WA12 AC0
2024-04-17 来自 浙江
0
有帮助,赞一个