ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่หา 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
สรุป
หากคุณมีคำถามในบทช่วยสอนนี้ ให้ระบุในส่วนความคิดเห็น