1 条题解

  • 0
    @ 2026-7-24 12:18:29
    # 解题思路
    
    先找最大值,再在所有小于最大值的数中找最大值。
    
    # 复杂度
    
    - 时间复杂度:$O(n)$(若题目只有单个整数,则可视为 $O(1)$)。
    - 空间复杂度:$O(n)$ 或 $O(1)$,取决于是否需要保存数组。
    
    # 参考程序
    
    ```cpp
    #include<bits/stdc++.h>
    

    using namespace std;

    int main(){ int n,a[1005]; cin >> n; for(int i=0;i<n;i++) cin >> a[i]; int mx=a[0]; for(int i=1;i<n;i++) if(a[i]>mx) mx=a[i]; bool found=false; int second=0; for(int i=0;i<n;i++) if(a[i]<mx){ if(!found || a[i]>second){ second=a[i]; found=true; } } if(found) cout << second; else cout << "NONE"; return 0; } ```

    • 1

    信息

    ID
    5054
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    4
    已通过
    2
    上传者