मान लीजिए कि हमारे पास एक मैट्रिक्स या ऑर्डर NxN है। हमें ऐसे तत्वों का एक युग्म खोजना है जो मैट्रिक्स के किसी भी स्तंभ से अधिकतम अंतर बनाते हैं। तो अगर मैट्रिक्स की तरह है -
1 | 2 | 3 |
5 | 3 | 5 |
9 | 6 | 7 |
तो आउटपुट 8 होगा। चूंकि जोड़ी कॉलम 0 से (1, 9) है।
विचार सरल है, हमें बस प्रत्येक कॉलम के अधिकतम और न्यूनतम तत्वों के बीच का अंतर खोजना है। फिर अधिकतम अंतर लौटाएं।
उदाहरण
#include<iostream> #define N 5 using namespace std; int maxVal(int x, int y){ return (x > y) ? x : y; } int minVal(int x, int y){ return (x > y) ? y : x; } int colMaxDiff(int mat[N][N]) { int diff = INT_MIN; for (int i = 0; i < N; i++) { int max_val = mat[0][i], min_val = mat[0][i]; for (int j = 1; j < N; j++) { max_val = maxVal(max_val, mat[j][i]); min_val = minVal(min_val, mat[j][i]); } diff = maxVal(diff, max_val - min_val); } return diff; } int main() { int mat[N][N] = {{ 1, 2, 3, 4, 5 }, { 5, 3, 5, 4, 0 }, { 5, 6, 7, 8, 9 }, { 0, 6, 3, 4, 12 }, { 9, 7, 12, 4, 3 },}; cout << "Max difference : " << colMaxDiff(mat) << endl; }
आउटपुट
Max difference : 12