Trong bài toán này, chúng ta được cung cấp một mảng arr [] gồm n số nguyên dương. Nhiệm vụ của chúng ta là tạo một chương trình để tìm các phần tử lớn hơn phần tử trước đó và tiếp theo trong một Mảng.
Mô tả mã: Chúng ta cần tìm các phần tử của mảng thỏa mãn điều kiện, phần tử lớn hơn mà phần tử ở chỉ số 1 nhỏ hơn nó và cũng lớn hơn phần tử ở chỉ số 1 lớn hơn nó.
Hãy lấy một ví dụ để hiểu vấn đề,
Đầu vào: arr [] ={3, 2, 5, 7, 3, 4, 5}
Đầu ra: 7
Giải thích -
Phần tử có chỉ số nhỏ hơn một phần tử hiện tại, 5.
Phần tử có chỉ mục nhiều hơn một phần tử hiện tại, 3.
Phần tử hiện tại lớn hơn cả hai.
Phương pháp tiếp cận Giải pháp -
Một giải pháp đơn giản cho vấn đề là kiểm tra điều kiện cho từng phần tử của mảng và sau đó in phần tử thỏa mãn điều kiện đó.
Để làm được điều này, chúng ta cần làm theo các bước sau−
Bước 1: Lặp qua các phần tử của mảng từ chỉ số 1 đến chỉ số n-2.
Bước 1.1: cho mỗi phần tử, arr [i]. Chúng tôi sẽ kiểm tra nếu arr [i]> arr [i-1] và arr [i]> arr [i + 1].
Bước 1.2: Nếu đúng, hãy in arr [i].
Chương trình minh họa hoạt động của giải pháp của chúng tôi,
Ví dụ
#include <iostream> using namespace std; void findElemenetsInArray(int arr[], int n) { for (int i = 1; i < n-1; i++) if ( (arr[i] > arr[i+1] && arr[i] > arr[i-1]) ) { cout<<arr[i]<<"\t"; } } int main() { int n = 8; int arr[n] = { 5, 4, 7, 1, 17, 8, 3 }; cout<<"The elements that satisfy the given condition are "; findElemenetsInArray(arr, n); return 0; }
Đầu ra -
The elements that satisfy the given condition are 7 17