Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

องค์ประกอบที่มากกว่าองค์ประกอบก่อนหน้าและถัดไปในอาร์เรย์ใน C++


ในปัญหานี้ เราได้รับอาร์เรย์ 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