ধরুন আমাদের একটি ম্যাট্রিক্স বা অর্ডার 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