VT02 - Tìm số lớn thứ hai của mảng

Xem dạng PDF

Gửi bài giải


Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift

Cho một mảng các số nguyên có ~n~ phần tử, bạn hãy tìm ra phần tử lớn thứ hai của mảng. Phần tử lớn thứ 2 bắt buộc phải nhỏ hơn, không chấp nhận bằng phần tử lớn nhất.

Input

  • Dòng đầu tiên là số nguyên dương ~n~, số lượng phần tử của mảng, (~2 \le n \le 10^6~)
  • Dòng tiếp theo là ~n~ số nguyên của mảng, (~|a_{i}| \le 10^9~)

Output

  • Nếu tìm thấy số lớn thứ 2 trong mảng, in ra số đó
  • Nếu không tìm thấy thì in ra NOT FOUND

Sample

Input #1
3
1 2 3
Output #1
2

Bình luận

Please read the guidelines before commenting.



  • 0
    minhkhang061213  đã bình luận lúc 28, Tháng 4, 2026, 13:34

    my dingus


  • -1
    minhtai2013vn  đã bình luận lúc 4, Tháng 3, 2026, 12:28

    include <bits/stdc++.h>

    using namespace std; long long n,i,d; int main()


  • 0
    letranthanhkhuong  đã bình luận lúc 17, Tháng 2, 2026, 15:14

    include <bits/stdc++.h>

    #define ll long long
    #define endl '\n'
    #define f firts
    #define s second
    #define pb push_back
    #define MAXN 1000006
    #define fio ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr)
    using namespace std;
    set<int> st;
    int main()
    {
        int n; cin >> n;
        for(int i =0; i&lt;n; i++)
        {
            int x;
            cin >> x;
            st.insert(x);
        }
        auto it = st.rbegin();
        ++it;
        if(st.size() == 1)
        {
            cout << "NOT FOUND"; 
            return 0;
        }
        cout << *it;
    }
    

  • 0
    letranthanhkhuong  đã bình luận lúc 13, Tháng 2, 2026, 17:38 sửa 2

    bai giai cua minh a

    #include <bits/stdc++.h>
    #define name "SMax"
    #define endl '\n'
    #define MAXN 1000006
    #define f(n) for(int i=0; i < n; i++)
    #define fio ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr)
    using namespace std;
    int a[MAXN];
    int main()
    {
        fio;
        int n, maxa = INT_MIN, mx2 = INT_MIN;
        cin >> n;
        f(n)
        {
            cin >> a[i];
            maxa = max(maxa, a[i]);
        }
        bool p = true;
        f(n)
        {
            if (a[i] < maxa)
            {
                mx2 = max(mx2, a[i]);
                p = false;
            }
        }
        if(p) cout << "NOT FOUND";
        else cout << mx2;
    }
    

  • 0
    letranthanhkhuong  đã bình luận lúc 13, Tháng 2, 2026, 16:58 sửa 11

    .


  • 0
    tranvu281214  đã bình luận lúc 19, Tháng 1, 2026, 8:24 sửa 4

    co ai bt lam ko


  • 0
    ledat132007  đã bình luận lúc 17, Tháng 1, 2026, 3:49

    include <iostream>

    include <vector>

    include <climits>

    using namespace std;

    int main() { int n; int max1 = INTMIN; int max2 = INTMIN; cin >> n; vector<int> a(n); for (int i = 0; i < n; i++) cin >> a[i]; for (int i = 0; i < n; i++) { if (a[i] > max1) { max2 = max1; max1 = a[i]; } else if (a[i] < max1 && max2 < a[i]) max2 = a[i]; } if (max2 == INT_MIN) cout << "NOT FOUND"; else cout << max2; }


  • 0
    TrChien  đã bình luận lúc 10, Tháng 1, 2026, 7:43

    Tìm số lớn thứ 2 trong mảng

    Độ phức tạp O(N)

    n = int(input("")) arr = list(map(int,input("").split())) max1 = float('-inf') max2 = float('-inf') for i in arr: if i > max1: max2 = max1 max1 = i elif i > max2 and i < max1: max2 = i if max2 == float('-inf'): print("NOT FOUND") else: print(max2)

    Mình có tham khảo lời giải của tác giả


  • -6
    minhtriet2013  đã bình luận lúc 9, Tháng 1, 2026, 12:36

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • 0
    nhankiettvt  đã bình luận lúc 30, Tháng 12, 2025, 10:10

    include <bits/stdc++.h>

    using namespace std; using ll = long long; using ull = unsigned long long;

    int main() { ios::syncwithstdio(false); cin.tie(nullptr); int n; cin >> n; set<ll> s; for (int i = 0; i < n; i++){ ll x; cin >> x; s.insert(x); } auto it=s.end(); if(s.size()==1) cout << "NOT FOUND"; else { --it;--it; cout << *it; } return 0; }


  • 0
    sanv2010  đã bình luận lúc 20, Tháng 12, 2025, 7:25

    define int long long

    using namespace std; int n,x; int32t main() { ios::syncwithstdio(false); cin.tie(nullptr); cin>>n; int m1=LLONGMIN,m2=LLONGMIN; for(int i=0;i<=n;i++) { cin>>x; if(x>m1) { if(m1!=x) m2=m1; m1=x; } else if(x<m1&&x>m2) { m2=x; } } if(m2==LLONGMIN) cout<<"NOT FOUND"; else cout<<m2; } full acc


  • 0
    minh6a3  đã bình luận lúc 23, Tháng 11, 2025, 10:21

    sos


  • -10
    okimfine  đã bình luận lúc 16, Tháng 12, 2024, 11:17

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • 0
    tungkq123  đã bình luận lúc 28, Tháng 11, 2023, 15:23

    mong ad capaj nhaats tinh năng hiện phần dữ liệu test case đầy đủ mỗi bài thì test sẽ dễ ạ


  • 0
    nguien_24  đã bình luận lúc 10, Tháng 11, 2023, 17:12

    quicksort(); rồi kiểm tra phần tử đầu và cuối bằng nhau không nếu = thì NOT FOUND. chạy 1 vòng for kiểm tra con if a[n-1]>a[i] thì in ra a[i] rồi break; else continue;


  • 0
    thanhqt74  đã bình luận lúc 1, Tháng 11, 2023, 13:22

    Test 7 là sao vậy mọi người ơi


  • 0
    lch101  đã bình luận lúc 27, Tháng 8, 2023, 16:44

    Bài này nếu mn code c++ thì có thể xài set rồi dịch con trỏ 1 cái từ vị trí cuối là dc nghen


  • 0
    kobetocdo  đã bình luận lúc 18, Tháng 8, 2023, 9:41

    cái trường hợp đấy là tất cả các số bằng nhau nó mới không tìm được đấy bạn ạ