用 C++ 找出矩陣中的孔洞數


假設給定一個矩陣。我們需要找到矩陣中的孔洞數。當元素周圍的所有其他元素都大於該元素時,該元素才表示為孔洞。因此,如果矩陣類似於 −

456
715
456

那麼輸出為 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

更新於: 18-Dec-2019

81 次瀏覽

開啟你的事業

完成課程並獲得認證

開始
廣告
© . All rights reserved.