इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो 2D सरणी में पीक एलिमेंट ढूंढता है।
एक तत्व को पीक एलिमेंट कहा जाता है यदि उसके आसपास के सभी तत्व उस तत्व से छोटे हों।
आइए प्रॉब्लम को हल करने के चरण देखें।
डमी डेटा के साथ 2D सरणी को इनिशियलाइज़ करें।
2D सरणी पर पुनरावृति करें।
पहले, 2D सरणी के कोने के तत्वों की जांच करें।
अगला, 2D सरणी की पहली और अंतिम पंक्तियों के लिए शर्तें लिखें।
अब, 2D सरणी के पहले और अंतिम कॉलम की जांच करें।
और अंत में, मध्य तत्वों की जांच करें।
प्रत्येक मामले में, हमें वर्तमान तत्व की तुलना उसके आसपास के तत्वों से करनी होगी। यह उपरोक्त शर्तों के आधार पर भिन्न होता है।
जहां भी आपको परिणाम मिले, मान लौटाएं।
उदाहरण
आइए कोड देखें।
#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
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उन्हें टिप्पणी अनुभाग में उल्लेख करें।