ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่ค้นหาองค์ประกอบพีคในอาร์เรย์ที่กำหนด
องค์ประกอบสูงสุดเป็นองค์ประกอบที่มากกว่าองค์ประกอบโดยรอบ มาดูขั้นตอนการแก้ปัญหากัน
-
เริ่มต้นอาร์เรย์ด้วยข้อมูลจำลอง
-
ตรวจสอบองค์ประกอบแรกและองค์ประกอบสุดท้ายสำหรับเงื่อนไของค์ประกอบสูงสุด
-
วนซ้ำอาร์เรย์จากองค์ประกอบที่สอง
-
ตรวจสอบว่าองค์ประกอบปัจจุบันมากกว่าองค์ประกอบก่อนหน้าและองค์ประกอบถัดไปหรือไม่
-
ส่งคืนหากตรงตามเงื่อนไขข้างต้น
-
-
พิมพ์ผลลัพธ์
ตัวอย่าง
มาดูโค้ดกันเลย
#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
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น