VT12 - Tìm chênh lệch lớn nhất trong 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, Python, Ruby, Rust, Scratch, Swift

Cho 1 mảng các số nguyên ~A~ có ~n~ phần tử. Hãy viết chương trình tìm chênh lệch lớn nhất giữa 2 phần tử bất kỳ trong mảng.(Xem ví dụ để hiểu rõ hơn)

Input

  • Dòng 1 là số lượng phần tử của mảng ~n~
  • Dòng tiếp theo là ~n~ số nguyên tương ứng là các phần tử của mảng ~A~

Biết rằng

  • ~ n \in N^*~ và ~3 \le n \le 10^4~
  • ~|A_{ij}| \le 10^8 ~

Output

Giá trị chênh lệch lớn nhất của 2 phần tử bất kỳ trong mảng ~A~

Sample

Input #1
5
1 5 3 2 4
Output #1
4

Hint

Quan sát ví dụ #1, ta thấy hai phần tử có giá trị 1 và 5 cho kết quả chênh lệch lớn nhất là 4. Do đó, 4 là kết quả của ví dụ này.


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 6
    nguyenductoan59  đã bình luận lúc 3, Tháng 4, 2024, 15:10

    CODE C++ ĐÃ AC NHA CHO MÌNH XIN 1 VOTE VỚI Ạ

    include<bits/stdc++.h>

    using namespace std;

    int main() {

    int max = INT_MIN;
    int n;
    cin>>n;
    int a[n];
    for(int i=0; i&lt;n; i++)
    {
        cin >> a[i];
    }
    for(int i=0; i&lt;n-1; i++)
    {
        for(int j=i+1; j&lt;n; j++)
        {
            int x = abs(a[i]-a[j]);
            if(max < x)
            {
                max = x;
            }
        }
    }
    cout << max;
    

    }


  • 0
    thangok  đã bình luận lúc 22, Tháng 3, 2024, 10:55

    Bài này có 2 cách cơ bản để xử lí :

    1. Sắp xếp tăng hoặc giảm dần rồi lấy phần tử cuối trừ đầu hoặc đầu trừ cuối
    2. Tìm ra max và min, lấy max-min

  • -1
    thangok  đã bình luận lúc 29, Tháng 2, 2024, 10:58

    .


  • -2
    ______  đã bình luận lúc 20, Tháng 1, 2024, 8:50

    chaoban101 la nguoi vo duyen lam may bn


  • 3
    kitajima2910  đã bình luận lúc 28, Tháng 12, 2023, 4:09

    Hello các bạn Java 8+ , có thể tham khảo code của mình đã AC, thấy hay up vote cho mình nhé :D

    import java.util.Scanner;
    
    /**
     *
     * @author Kitajima2910
     */
    public class VT12 {
    
        public static void main(String[] args) {
    
            Scanner sc = new Scanner(System.in);
    
            int n = sc.nextInt();
    
            int max = Integer.MIN_VALUE;
            int min = Integer.MAX_VALUE;
    
            for(int i = 1; i <= n; i++) {
                int e = sc.nextInt();
                max = Math.max(max, e);
                min = Math.min(min, e);
            }
    
            System.out.println(max - min);
        }
    
    }
    

  • 0
    LiuChi_3007  đã bình luận lúc 20, Tháng 12, 2023, 13:32

    Hỗ trợ mng nhaa!

    include<bits/stdc++.h>

    using namespace std; int main(){ int max = INT_MIN; int n;cin>>n; int a[n]; for(int i=0;i<n;i++){ cin >> a[i]; } for(int i=0;i<n-1;i++){ for(int j=i+1;j<n;j++){ int x = abs(a[i]-a[j]); if(max < x){ max = x; } } } cout << max; }


  • -2
    tungkq123  đã bình luận lúc 29, Tháng 11, 2023, 6:58

    .


  • 0
    tthuyet04  đã bình luận lúc 26, Tháng 11, 2023, 6:56

    Bài này sắp xếp mảng xong lấy hai phần tử đầu cuối trừ nhau nhé !!


    • 2
      thh  đã bình luận lúc 21, Tháng 1, 2024, 11:05

      trong lúc đang nhập gán liên tục maxn và minn xong lấy maxn - minn là xong nhé bạn


  • 0
    g  đã bình luận lúc 16, Tháng 11, 2023, 18:12

    include <iostream>

    include <algorithm>

    typedef long long ll;

    const ll max = 10005; int main(){ ll n; std::cin >> n; ll a[max]; for (ll i = 0; i < n; ++i) { std::cin >> a[i]; } std::sort(a, a+n); std::cout << a[n-1] - a[0]; return 0; }


  • 0
    hohoanghai5042011  đã bình luận lúc 14, Tháng 10, 2023, 8:33

    tìm số lớn nhất r lấy 1 biến để gáng giá trị lớn nhất -a[1] bài này sử dụng 2 for để tìm và 1 for còn lại để nhập mong cho mình xin 1 vote


    • 1
      thh  đã bình luận lúc 21, Tháng 1, 2024, 11:05

      include <bits/stdc++.h>

      define int long long

      using namespace std;

      int n, num, maxn = -1000000000, minn = 1000000000; int res = 0; void solve() {

      cin >> n;
      for(int i = 1;i <= n; ++i)
      {
          cin >> num;
          maxn = max(maxn, num);
          minn = min(minn, num);
      }
      cout << maxn - minn;
      

      } main() {

      ios_base::sync_with_stdio(false);
      cin.tie(nullptr);cout.tie(nullptr);
      
      solve();
      

      }


  • -2
    kaede_chan04  đã bình luận lúc 16, Tháng 8, 2023, 21:41

    mọi người có thể cho mìnn hướng giải bài này đc ko ạ, mình đi tìm max, min nhưng lại bị RTE


    • 3
      Hieu Nguyen  đã bình luận lúc 16, Tháng 8, 2023, 23:45

      Đề bài có giới hạn số lượng phần tử lên tới ~10^4~ mà em chỉ khai báo mảng có 100 phần tử -> Lỗi truy xuất sai vùng nhớ được cấp phát là nguyên nhân gây ra RTE nhé.


      • 1
        kaede_chan04  đã bình luận lúc 17, Tháng 8, 2023, 8:16

        dạ em cảm ơn admin ạ


  • 0
    tung10000  đã bình luận lúc 27, Tháng 7, 2023, 14:22

    Bài này em bị lỗi run time thì làm như nào ạ


    • 0
      codega  đã bình luận lúc 18, Tháng 10, 2023, 16:27

      mình dùng loop trâu mà vẫn acept vậy nếu bạn bị tle thì chắc code chạy quá lâu r, xem lại đi