हमें n x n आकार का एक मैट्रिक्स दिया गया है और एक शर्त कि a[i][j] = 0 और कार्य उन सूचकांकों का अधिकतम अंतर निकालना है जिनमें a[i][j] = 0 है। इसलिए, हम स्पष्ट रूप से बता सकते हैं कि मैट्रिक्स में कम से कम एक शून्य होना चाहिए।
इनपुट
int matrix[][] = {
{0, 1, 1},
{0, 0, 0},
{4, 5, 1}
}
आउटपुट - दिए गए मैट्रिक्स में A[i][j] = 0 वाले सूचकांकों (i, j) का अधिकतम अंतर:
व्याख्या - हमारे पास matrix[0][0], matrix[1][0], matrix[1][1] और matrix[1][2] पर एलिमेंट 0 है। इसलिए सूचकांकों का अधिकतम अंतर matrix[1][0] पर होगा जिसमें एलिमेंट 0 है। इसलिए अधिकतम अंतर 1 है।
इनपुट
int matrix[][] = {
{0, 1, 1},
{0, 2, 9},
{4, 0, 1}
}
आउटपुट - दिए गए मैट्रिक्स में A[i][j] = 0 वाले सूचकांकों (i, j) का अधिकतम अंतर:
व्याख्या - हमारे पास matrix[0][0], matrix[1][0] और matrix[2][1] पर एलिमेंट 0 है। इसलिए सूचकांकों का अधिकतम अंतर matrix[1][0] और matrix[2][1] पर होगा जिसमें एलिमेंट 0 है। इसलिए अधिकतम अंतर 1 है।
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
- मैट्रिक्स इनपुट करें जिसमें कम से कम किसी भी सूचकांक पर एक 0 हो।
- पंक्ति और स्तंभ का अधिकतम आकार परिभाषित करें यानी n x n का आकार।
- एक अस्थायी वेरिएबल लें जो अधिकतम अंतर मान संग्रहीत करेगा।
- 0 से row_size तक लूप शुरू करें
- लूप के अंदर, 0 से col_size तक एक और लूप शुरू करें
- जांचें IF matrix[i][j] == 0
- तब अधिकतम मान को सूचकांकों के अंतर के रूप में अधिकतम मान पर सेट करें।
- अधिकतम मान रिटर्न करें
- परिणाम प्रिंट करें।
उदाहरण
#include <bits/stdc++.h>
using namespace std;
#define ROW 3
#define COL 3
// अधिकतम अंतर ढूंढें
int maximum(int matrix[ROW][COL]) {
int max_val = 0;
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
if (matrix[i][j] == 0) {
max_val = max(max_val, abs(i - j));
}
}
}
return max_val;
}
int main() {
int matrix[ROW][COL] = {
{1, 2, 0},
{0, 4, 0},
{0, 1, 0}
};
cout << "Maximum difference of indices with A[i][j] = 0 is: " << maximum(matrix);
return 0;
}
आउटपुट
Maximum difference of indices with A[i][j] = 0 is: 2