1 条题解
-
0
【深基4.习5】求极差 / 最大跨度值
解题思路
遍历时同时维护最小值与最大值,输出两者之差。
正确性说明
逐次取 min、max 分别准确维护已读集合的极值,最终之差就是极差的定义。
易错点
不能用相邻差替代极差;n=1 时极差为 0。
复杂度
时间 O(n),空间 O(1)。
参考代码(C++11)
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; int lo = INT_MAX, hi = INT_MIN; while (n--) { int x; cin >> x; lo = min(lo, x); hi = max(hi, x); } cout << hi - lo << "\n"; return 0; }
- 1