Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में 2D सरणी में पीक एलिमेंट खोजें


इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो 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

निष्कर्ष

यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उन्हें टिप्पणी अनुभाग में उल्लेख करें।


  1. - C++ में सरणी के प्रत्येक तत्व का सरपासर काउंट खोजें

    मान लीजिए एक सरणी A दी गई है। हमें उस सरणी में प्रत्येक तत्व के सरपासर की संख्या ज्ञात करनी है। सरपासर वे बड़े तत्व हैं जो वर्तमान तत्व के दाईं ओर सरणी में मौजूद हैं। मान लीजिए A = {2, 7, 5, 3, 0, 8, 1}, सरपासर हैं {4, 1, 1, 1, 2, 0, 0}, इसलिए 2 के दाईं ओर 4 संख्याएं हैं जो 2 से बड़ी हैं, और इसी नि

  1. - बाइनरी सर्च दृष्टिकोण का उपयोग करके सरणी में पीक एलिमेंट खोजने के लिए C++ प्रोग्राम

    इस C++ प्रोग्राम में, हम बाइनरी सर्च दृष्टिकोण का उपयोग करके सरणी में एक पीक एलिमेंट ढूंढते हैं। यह एल्गोरिदम पहले मिले पीक को परिणाम के रूप में लौटाता है और इसकी समय जटिलता O(log n) है। एल्गोरिदम शुरुआत    PeakElement() फ़ंक्शन में arr डेटा की सरणी, प्रारंभ और अंत इंडेक्स आर्गुमेंट सूची म

  1. - C++ में सरणी का सबसे बड़ा एलिमेंट खोजने का प्रोग्राम

    एक सरणी में कई एलिमेंट्स होते हैं और सरणी में सबसे बड़ा एलिमेंट वह होता है जो अन्य एलिमेंट्स से बड़ा होता है। उदाहरण के लिए। 5 1 7 2 4 उपरोक्त सरणी में, 7 सबसे बड़ा एलिमेंट है और यह इंडेक्स 2 पर है। सरणी का सबसे बड़ा एलिमेंट खोजने का एक प्रोग्राम निम्नलिखित है। उदाहरण #include <iostream>