ในปัญหานี้ เราได้รับอาร์เรย์ arr[] ของจำนวนเต็มบวก n ตัว งานของเราคือการสร้างโปรแกรมเพื่อค้นหาองค์ประกอบ ที่มากกว่าองค์ประกอบก่อนหน้าและถัดไปในอาร์เรย์
คำอธิบายโค้ด: เราต้องหาองค์ประกอบของอาร์เรย์ที่ตรงตามเงื่อนไข องค์ประกอบนั้นมากกว่าองค์ประกอบที่ดัชนี 1 น้อยกว่าและมากกว่าองค์ประกอบที่ดัชนี 1 มากกว่านั้นด้วย
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
ป้อนข้อมูล: arr[] ={3, 2, 5, 7, 3, 4, 5}
ผลลัพธ์: 7
คำอธิบาย −
องค์ประกอบที่มีดัชนีหนึ่งน้อยกว่าองค์ประกอบปัจจุบัน 5
องค์ประกอบที่มีดัชนีมากกว่าหนึ่งองค์ประกอบปัจจุบัน 3.
องค์ประกอบปัจจุบันมีค่ามากกว่าทั้งคู่
แนวทางการแก้ปัญหา -
วิธีแก้ปัญหาง่ายๆ คือการตรวจสอบเงื่อนไขสำหรับแต่ละองค์ประกอบของอาร์เรย์ จากนั้นพิมพ์องค์ประกอบที่ตรงตามเงื่อนไข
สำหรับสิ่งนี้ เราต้องทำตามขั้นตอนเหล่านี้-
ขั้นตอนที่ 1: วนซ้ำองค์ประกอบของอาร์เรย์จากดัชนี 1 ถึง n-2
ขั้นตอนที่ 1.1: สำหรับแต่ละองค์ประกอบ arr[i] เราจะตรวจสอบว่า arr[i]> arr[i-1] และ arr[i]> arr[i+1]
ขั้นตอนที่ 1.2: ถ้าเป็นเรื่องจริง พิมพ์ arr[i].
โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา
ตัวอย่าง
#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; }
ผลลัพธ์ -
The elements that satisfy the given condition are 7 17