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

मैट्रिक्स में सुरक्षित सेल खोजें C++ में

मान लीजिए हमारे पास एक मैट्रिक्स mat[][] है। इसमें वर्ण Z और P हैं। Z ज़ोंबी है और P पौधा है। और दूसरा वर्ण * खाली जमीन है। एक ज़ोंबी पौधे पर हमला कर सकता है, जब पौधा ज़ोंबी के निकट हो। हमें उन पौधों की संख्या खोजनी है, जो ज़ोंबी से सुरक्षित हैं। मान लीजिए मैट्रिक्स नीचे जैसा है -

मैट्रिक्स में सुरक्षित सेल खोजें C++ में

तो केवल दो पौधे हैं जो सुरक्षित हैं।

हम मैट्रिक्स को तत्व दर तत्व पार करेंगे, फिर जब वर्तमान तत्व पौधा हो, तो जांचें कि पौधा ज़ोंबी से घिरा हुआ है या नहीं, यदि नहीं तो काउंट बढ़ाएं।

उदाहरण

#include <iostream>
using namespace std;

bool isZombie(int i, int j, int r, int c, string mat[]) {
    if (i < 0 || j < 0 || i >= r || j >= c || mat[i][j] != 'Z')
        return false;
    return true;
}

int countSafeCells(string matrix[], int row, int col) {
    int i, j, count = 0;
    for (i = 0; i < row; i++) {
        for (j = 0; j < col; j++) {
            if (matrix[i][j] == 'P') {
                if (!isZombie(i - 1, j - 1, row, col, matrix) && !isZombie(i - 1, j, row, col, matrix)
                    && !isZombie(i - 1, j + 1, row, col, matrix) && !isZombie(i, j - 1, row, col, matrix)
                    && !isZombie(i, j, row, col, matrix) && !isZombie(i, j + 1, row, col, matrix)
                    && !isZombie(i + 1, j - 1, row, col, matrix) && !isZombie(i + 1, j, row, col, matrix)
                    && !isZombie(i + 1, j + 1, row, col, matrix)) {
                    count++;
                }
            }
        }
    }
    return count;
}

int main() {
    string mat[] = {
        "**P*",
        "Z***",
        "*P**",
        "***P"
    };
    int row = sizeof(mat) / sizeof(mat[0]);
    int col = mat[0].length();
    cout << "Number of safe cells: " << countSafeCells(mat, row, col);
}

आउटपुट

Number of safe cells: 2

  1. C++ में प्रत्येक ट्री पंक्ति का सबसे बड़ा मान C++ में प्रत्येक ट्री पंक्ति का सबसे बड़ा मान

    मान लीजिए हमारे पास एक बाइनरी ट्री है। हमें ट्री के प्रत्येक लेवल का सबसे बड़ा तत्व ढूंढना है। उदाहरण: ट्री [1,3,2,5,3,null,9] के लिए आउटपुट [1,3,9] होगा (लेवल 0: 1, लेवल 1: max(3,2)=3, लेवल 2: max(5,3,9)=9)। DFS + लेवल ट्रैकिंग एक सरणी ans बनाएँ जहाँ ans[level] उस लेवल का अधिकतम मान स्टोर करे।

  1. - C++ प्रोग्राम: ग्राफ मैट्रिक्स का ट्रांसपोज़ ज्ञात करना

    इस प्रोग्राम में हम एक मैट्रिक्स लेते हैं और मैट्रिक्स का ट्रांसपोज़ प्रिंट करते हैं। ट्रांसपोज़ मैट्रिक्स में, पंक्तियां स्तंभ बन जाती हैं और इसके विपरीत। एल्गोरिदम शुरुआत मैट्रिक्स की पंक्तियों और स्तंभों की संख्या लें। मैट्रिक्स के तत्व लें और मैट्रिक्स A में संग्रहीत करें। ट्रांसपोज़ मैट्रिक्स

  1. - C++ में मैट्रिक्स का ट्रांसपोज़ खोजने का प्रोग्राम

    मैट्रिक्स संख्याओं का एक आयताकार सरणी है जो पंक्तियों और कॉलम के रूप में व्यवस्थित होता है। मैट्रिक्स का ट्रांसपोज़ एक नया मैट्रिक्स है जिसमें मूल की पंक्तियाँ अब कॉलम हैं और इसके विपरीत। उदाहरण के लिए। एक मैट्रिक्स नीचे दिया गया है: 1 2 3 4 5 6 7 8 9 उपरोक्त मैट्रिक्स का ट्रांसपोज़ निम्नानुसार है।