हमें पूर्णांकों से बनी एक मैट्रिक्स दी गई है। लक्ष्य मैट्रिक्स में उन पंक्तियों की संख्या ज्ञात करना है जिनमें सभी तत्व समान हों।
यदि 5×4 मैट्रिक्स नीचे दिखाया गया है:
| 1 | 5 | 1 | 3 | 1 |
| 1 | 1 | 1 | 1 | 1 |
| 5 | 3 | 2 | 3 | 5 |
| 7 | 7 | 7 | 7 | 7 |
उत्तर 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