题解
最大跨度值
1 条题解
-
0
解题思路
最大跨度值 = 最大值 - 最小值。用"打擂台"的思想:一边读入一边维护最大值
mx和最小值mn,每读入一个数就和它们比较更新。全部读完,mx - mn就是答案。参考代码
#include <iostream> using namespace std; int main() { int n; cin >> n; int mx = 0, mn = 201; // mx记最大值(初始很小),mn记最小值(初始很大) for (int i = 0; i < n; i++) { int x; cin >> x; if (x > mx) mx = x; // 比当前最大值大就更新 if (x < mn) mn = x; // 比当前最小值小就更新 } cout << mx - mn << endl; // 最大跨度 = 最大值 - 最小值 return 0; }复杂度分析
循环 n 次,n 最大 100,时间复杂度 O(n);只用几个变量,额外空间复杂度 O(1)。
- 1