top1编程
← 返回题目
题解

最大跨度值

1 条题解

  • 0
    @ 2026-8-5 0:22:41

    解题思路

    最大跨度值 = 最大值 - 最小值。用"打擂台"的思想:一边读入一边维护最大值 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