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

หา Peak Element ในอาร์เรย์ด้วย C++

ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่หา peak element ในอาร์เรย์ที่กำหนด

Peak element คือองค์ประกอบที่มากกว่าองค์ประกอบรอบข้าง มาดูขั้นตอนในการแก้ปัญหา

  • เริ่มต้นอาร์เรย์ด้วยข้อมูลจำลอง
  • ตรวจสอบองค์ประกอบแรกและสุดท้ายสำหรับเงื่อนไข peak element
  • วนลูปผ่านอาร์เรย์จากองค์ประกอบที่สอง
    • ตรวจสอบว่าองค์ประกอบปัจจุบันมากกว่าองค์ประกอบก่อนหน้าและถัดไปหรือไม่
    • คืนค่าถ้าเงื่อนไขเป็นจริง
  • พิมพ์ผลลัพธ์

ตัวอย่างโค้ด

#include <bits/stdc++.h>
using namespace std;

int findPeakElement(int arr[], int n) {
    if (n == 1) {
        return arr[0];
    }
    if (arr[0] >= arr[1]) {
        return arr[0];
    }
    if (arr[n - 1] >= arr[n - 2]) {
        return arr[n - 1];
    }
    for (int i = 1; i < n - 1; i++) {
        if (arr[i] >= arr[i - 1] && arr[i] >= arr[i + 1]) {
            return arr[i];
        }
    }
    return arr[0];
}

int main() {
    int arr[] = {1, 2, 5, 4, 7};
    cout << findPeakElement(arr, 5) << endl;
    return 0;
}

ผลลัพธ์

ถ้าคุณรันโค้ดด้านบน คุณจะได้ผลลัพธ์ดังนี้

7

สรุป

หากคุณมีคำถามในบทช่วยสอนนี้ ให้ระบุในส่วนความคิดเห็น