इस समस्या में, हमें दो आयामी सरणियाँ दी गई हैं मैट [एन] [एम]। हमारा कार्य स्थितीय तत्वों की संख्या ज्ञात करना है।
एक तत्व को स्थितीय तत्व कहा जाता है यदि तत्व पंक्ति या स्तंभ का अधिकतम या न्यूनतम तत्व है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
mat[][] = {2, 5, 7} {1, 3, 4} {5, 1, 3}
आउटपुट
8
स्पष्टीकरण
तत्व 2, 5, 7, 1, 4, 5, 1, 3 स्थितीय तत्व हैं।
समाधान दृष्टिकोण
समस्या का एक सरल समाधान प्रत्येक पंक्ति और स्तंभ के अधिकतम और न्यूनतम तत्व को संग्रहीत करना है। और फिर स्थिति की जांच करें और संख्या गिनें।
हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,
उदाहरण
#include <iostream> using namespace std; const int MAX = 100; int countAllPositionalElements(int mat[][MAX], int m, int n){ int rowmax[m], rowmin[m]; int colmax[n], colmin[n]; for (int i = 0; i < m; i++) { int rminn = 10000; int rmaxx = -10000; for (int j = 0; j < n; j++) { if (mat[i][j] > rmaxx) rmaxx = mat[i][j]; if (mat[i][j] < rminn) rminn = mat[i][j]; } rowmax[i] = rmaxx; rowmin[i] = rminn; } for (int j = 0; j < n; j++) { int cminn = 10000; int cmaxx = -10000; for (int i = 0; i < m; i++) { if (mat[i][j] > cmaxx) cmaxx = mat[i][j]; if (mat[i][j] < cminn) cminn = mat[i][j]; } colmax[j] = cmaxx; colmin[j] = cminn; } int positionalCount = 0; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if ((mat[i][j] == rowmax[i]) || (mat[i][j] == rowmin[i]) || (mat[i][j] == colmax[j]) || (mat[i][j] == colmin[j])){ positionalCount++; } } } return positionalCount; } int main(){ int mat[][MAX] = { { 2, 5, 7 }, { 1, 3, 4 }, { 5, 1, 3 } }; int m = 3, n = 3; cout<<"Number of positional elements is "<<countAllPositionalElements(mat, m, n); return 0; }
आउटपुट
Number of positional elements is 8