इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो 2डी एरे में पीक एलिमेंट को ढूंढता है।
एक तत्व को शिखर तत्व कहा जाता है यदि उसके चारों ओर के सभी तत्व तत्व से छोटे होते हैं।
आइए समस्या को हल करने के लिए चरणों को देखें।
-
डमी डेटा के साथ 2डी ऐरे को इनिशियलाइज़ करें।
-
2डी सरणी पर पुनरावृति करें।
-
सबसे पहले, 2D सरणी के कोने के तत्वों की जाँच करें।
-
इसके बाद, 2D सरणी की पहली और अंतिम पंक्तियों के लिए शर्तें लिखें।
-
अब, 2डी सरणी के पहले और आखिरी कॉलम की जांच करें।
-
और अंत में, बीच के तत्वों की जांच करें।
-
प्रत्येक मामले में, हमें वर्तमान तत्व की उसके आसपास के तत्वों से तुलना करनी होगी। यह उपरोक्त शर्तों के आधार पर भिन्न होता है।
-
जहाँ भी आपको परिणाम मिले, मान लौटाएँ।
-
उदाहरण
आइए कोड देखें।
#include <bits/stdc++.h> using namespace std; const int MAX = 256; int findPeakElement(int arr[][MAX], int rows, int columns) { for (int i = 0; i < rows; i++) { for (int j = 0; j < columns; j++) { if (i == 0 && j == 0) { if (arr[i][j] > arr[i + 1][j] && arr[i][j] > arr[i][j + 1]) { return arr[i][j]; } } else if (i == 0 && j == columns - 1) { if (arr[i][j] > arr[i + 1][j] && arr[i][j] > arr[i][j - 1]) { return arr[i][j]; } } else if (i == rows - 1 && j == 0) { if (arr[i][j] > arr[i - 1][j] && arr[i][j] > arr[i][j + 1]) { return arr[i][j]; } } else if (i == rows - 1 && j == columns - 1) { if (arr[i][j] > arr[i - 1][j] && arr[i][j] > arr[i][j - 1]) { return arr[i][j]; } } else if (i == 0) { if (arr[i][j] > arr[i][j - 1] && arr[i][j] > arr[i][j + 1] && arr[i][j] > arr[i + 1][j]) { return arr[i][j]; } } else if (i == rows - 1) { if (arr[i][j] > arr[i][j - 1] && arr[i][j] > arr[i][j + 1] && arr[i][j] > arr[i - 1][j]) { return arr[i][j]; } } else if (j == 0) { if (arr[i][j] > arr[i - 1][j] && arr[i][j] > arr[i + 1][j] && arr[i][j] > arr[i][j + 1]) { return arr[i][j]; } } else if (j == columns - 1) { if (arr[i][j] > arr[i - 1][j] && arr[i][j] > arr[i + 1][j] && arr[i][j] > arr[i][j - 1]) { return arr[i][j]; } } else { if (arr[i][j] > arr[i][j - 1] && arr[i][j] > arr[i][j + 1] && arr[i][j] > arr[i - 1][j] && arr[i][j] > arr[i + 1][j]) { return arr[i][j]; } } } } return -1; } int main() { int arr[][MAX] = { { 1, 2, 3, 4 }, { 2, 3, 4, 5 }, { 1, 3, 7, 5 }, { 1, 2, 6, 6 } }; int rows = 4, columns = 4; cout << findPeakElement(arr, rows, columns) << endl; return 0; }
आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।
7
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उनका टिप्पणी अनुभाग में उल्लेख करें।