Kiểm tra mảng tăng dần Python

Làm sao để kiểm tra mảng tăng dần hay giảm dần? Bài viết này sẽ cung cấp cho các bạn gợi ý ý tưởng giải và lời giải tham khảo. Tuy nhiên, Hiếu khuyến khích các bạn đọc ý tưởng giải và tự làm trước sau đó hãy so sánh với lời giải mẫu của tôi.

Mảng tăng dần hay giảm dần? Làm sao để kiểm tra dãy số tăng/giảm dần?

Đề bài: Cho dãy số nguyên có N phần tử, yêu cầu kiểm tra dãy số tăng dần hay giảm dần? Như vậy, ta có 3 trường hơp:

  1. Dãy số tăng dần, phần tử phía sau không nhỏ hơn các phần tử phía trước
  2. Dãy số giảm dần, phần tử phía sau không lớn hơn các phần tử phía trước
  3. Dãy số không tăng không giảm

NỘI DUNG BÀI VIẾT

Ý tưởng kiểm tra dãy số tăng dần

Để kiểm tra mảng tăng dần hay không bạn có 2 cách:

  • Bài toán thuận: Nếu dãy có N số, bạn phải đếm có bao nhiêu cặp 2 số liên tiếp a[i] & a[i+1], [0 a[i+1]:

            tr v false

    Tr v true

    Ý tưởng kiểm tra dãy số giảm dần tương tự như trên, mình sẽ không trình bày lại. Để hiểu rõ hơn, chúng ta sẽ cùng đi vào code nhé.

    Với trường hợp không tăng không giảm, ta có nhận xét: Mảng không tăng, không giảm đồng thời cả 2 hàm kiểm tra tăng dần, giảm dần đều trả về false.

    Tham khảo thêm: Bài tập lập trình C/C++

    Hàm kiểm tra dãy số tăng dần

    Sử dụng cách kiểm tra đầu tiên:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    // Kiểm tra theo kiểu bài toán thuận

    bool IsGrow1[int a[], int n] {

    int dem = 0;

    for [int i = 0; i = a[i]] dem++;

    }

    if [dem == n - 1] return true;

    else return false;

    }

    Với cách kiểm tra theo bài toán nghịch, có vẻ vấn đề dễ dàng hơn một chút:

    1

    2

    3

    4

    5

    6

    7

    // Kiểm tra theo kiểu bài toán ngịch

    bool IsGrow2[int a[], int n]{

        for[int i = 0; i a[i+1]] return false;

        }

        return true;

    }

    Hàm kiểm tra dãy số giảm dần

    Chúng ta vẫn có 2 cách kiểm tra trên, đây là code hàm kiểm tra dãy số giảm dần:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    // Kiểm tra theo kiểu bài toán thuận

    bool IsDESC1[int a[], int n] {

    int dem = 0;

    for [int i = 0; i

Chủ Đề