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

C++ में मैट्रिक्स में उन पंक्तियों की गिनती जिनमें सभी तत्व समान हों


हमें पूर्णांकों से बनी एक मैट्रिक्स दी गई है। लक्ष्य मैट्रिक्स में उन पंक्तियों की संख्या ज्ञात करना है जिनमें सभी तत्व समान हों।

यदि 5×4 मैट्रिक्स नीचे दिखाया गया है:

15131
11111
53235
77777

उत्तर 2 होगा, पंक्ति 1 (सभी 1's) और पंक्ति 3 (सभी 7's) में समान तत्व हैं।

उदाहरण सहित समझ

इनपुट

matrix =   [ 1 1 1 1 ]   [ 2 3 2 7 ]   [ 3 3 3 3 ]

आउटपुट - मैट्रिक्स में उन पंक्तियों की संख्या जिनमें समान तत्व हैं: 2

व्याख्या - पंक्ति 0 में सभी 1's हैं और पंक्ति 2 में सभी 3's हैं।

इनपुट

matrix =   [ 1 2 3 4 ]   [ 1 2 3 4 ]   [ 1 2 3 4 ]

आउटपुट - मैट्रिक्स में उन पंक्तियों की संख्या जिनमें समान तत्व हैं: 0

व्याख्या - सभी पंक्तियों में अलग-अलग तत्व हैं।

नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण

हम मैट्रिक्स को वेक्टर ऑफ वेक्टर्स<int> के रूप में ले रहे हैं। हम प्रत्येक वेक्टर को ट्रैवर्स करेंगे और प्रत्येक पंक्ति के लिए एक सेट<int> बनाते रहेंगे। इस सेट में पंक्ति के तत्व डालते रहें। अंत में यदि इस सेट में केवल 1 तत्व है (सेट का आकार लें)। तो वर्तमान पंक्ति में सभी समान तत्व हैं।

  • मैट्रिक्स को वेक्टर < vector <int> > matrix के रूप में लें और इसे आरंभ करें।
  • matrix.size() का उपयोग करके आकार की गणना करें।
  • फंक्शन same_rows(vector<vector<int>> matrix, int size) मैट्रिक्स और इसका आकार लेता है और उन पंक्तियों की संख्या लौटाता है जिनमें समान तत्व हैं।
  • प्रारंभिक काउंट 0 लें।
  • फॉर लूप का उपयोग करके मैट्रिक्स को ट्रैवर्स करें। i=0 से i=size तक।
  • प्रत्येक पंक्ति के लिए j=0 से j<matrix[i].size() तक ट्रैवर्स करें।
  • वर्तमान पंक्ति के तत्वों को संग्रहीत करने के लिए एक set<int> set_row लें।
  • set_row.insert(matrix[i][j]) का उपयोग करके वर्तमान पंक्ति के लिए तत्व इस सेट में जोड़ें।
  • अंत में set_row के आकार की जांच करें। यदि यह 1 है तो इस पंक्ति में सभी समान तत्व हैं। काउंट बढ़ाएँ।
  • सभी पंक्तियों के लिए सभी पुनरावृत्तियों के अंत में, अंतिम परिणाम के रूप में काउंट लौटाएँ।

उदाहरण

#include <bits/stdc++.h>
using namespace std;

int same_rows(vector<vector<int>> matrix, int size) {
    int count = 0;
    for (int i = 0; i < size; i++) {
        set<int> set_row;
        for (int j = 0; j < matrix[i].size(); j++) {
            set_row.insert(matrix[i][j]);
        }
        int set_size = set_row.size();
        if (set_size == 1) {
            count++;
        }
    }
    return count;
}

int main() {
    vector<vector<int>> matrix = {
        { 2, 2, 2, 2},
        { 5, 5, 5, 5 },
        { 2, 2, 2, 2 },
        {5, 5, 5, 5}
    };
    int size = matrix.size();
    cout << "Count of rows in a matrix that consist of same element are: " << same_rows(matrix, size);
    return 0;
}

आउटपुट

Count of rows in a matrix that consist of same element are: 4
  1. - C++ प्रोग्राम: संख्या में उन अंकों की संख्या ज्ञात करना जो संख्या को विभाजित करते हैं

    मान लें कोई संख्या दी गई है। हमें संख्या के उन अंकों की संख्या गिननी है जो संख्या को समान रूप से विभाजित करते हैं। मान लें संख्या 1012 है, परिणाम 3 है। तीन अंक 1, 1, और 2 हैं जो 1012 को समान रूप से विभाजित करते हैं। इसे हल करने के लिए, हम मापांक ऑपरेशन का उपयोग करके संख्या के प्रत्येक अंक को ज्ञात

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

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

  1. - C++ प्रोग्राम: 'k' खोजें जैसे कि प्रत्येक एरे तत्व के साथ इसका मॉड्यूलस समान हो

    इस लेख में, हम एक प्रोग्राम पर चर्चा करेंगे जो एक पूर्णांक k खोजता है, जैसे कि दिए गए एरे के प्रत्येक तत्व के साथ इसका मॉड्यूलस समान हो। उदाहरण के लिए, मान लीजिए हमें एक एरे दिया गया है, arr = {12, 22, 32} तो हमारे पास आउटपुट मान k = 1, 2, 5, 10 होगा। y)। तब हमारे पास (y + अंतर) % k = y % k होगा।