একটি ম্যাট্রিক্স দেওয়া আছে বিবেচনা করুন. আমাদের ম্যাট্রিক্সে গহ্বরের সংখ্যা খুঁজে বের করতে হবে। একটি উপাদানকে গহ্বর হিসাবে চিহ্নিত করা হয় যখন এটিকে ঘিরে থাকা অন্যান্য উপাদানগুলি উপাদানের চেয়ে বড় হয়। তাই ম্যাট্রিক্স যদি −
এর মত হয়4 | 5 | 6 |
7 | 1 | 5 |
4 | 5 | 6 |
সুতরাং আউটপুট হল 1.
আমরা কেবল আশেপাশের উপাদানগুলি পরীক্ষা করি এবং সিদ্ধান্ত গ্রহণ করি৷
উদাহরণ
#include<iostream> #define MAX 100 using namespace std; int numberOfCavities(int array[][MAX], int n) { int arr[n + 2][n + 2]; int count = 0; for (int i = 0; i < n + 2; i++) { for (int j = 0; j < n + 2; j++) { if ((i == 0) || (j == 0) || (i == n + 1) || (j == n + 1)) arr[i][j] = INT_MAX; else arr[i][j] = array[i - 1][j - 1]; } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { if ((arr[i][j] < arr[i - 1][j]) && (arr[i][j] < arr[i + 1][j]) && (arr[i][j] < arr[i][j - 1]) && (arr[i][j] < arr[i][j + 1]) && (arr[i][j] < arr[i - 1][j - 1]) && (arr[i][j] < arr[i + 1][j + 1]) && (arr[i][j] < arr[i - 1][j + 1]) && (arr[i][j] < arr[i + 1][j - 1])) count++; } } return count; } int main() { int a[][MAX] = { { 4, 5, 6 }, { 7, 1, 5 }, { 4, 5, 6 }}; int n = 3; cout << "Number of cavities: " << numberOfCavities(a, n); }
আউটপুট
Number of cavities: 1