檢查 JavaScript 中特定型別的矩陣


問題

我們需要編寫一個 JavaScript 函式,其採用一個文字 2-D 陣列 arr 作為第一個且唯一引數。

我們的函式應檢查每一個從左上到右下的對角線是否具有相同的元素。

如果是,我們應返回 true,否則返回 false。

例如,如果函式的輸入為

輸入

const arr = [
   [6, 7, 8, 9],
   [2, 6, 7, 8],
   [1, 2, 6, 7],
];

輸出

const output = true;

輸出說明

在上邊陣列中,對角線為 −

[1], [2,2], [6,6,6], [7,7,7], [8,8], [9]

每個對角線中的所有元素都相同,因此答案為 True。

示例

以下為程式碼 −

 動態演示

const arr = [
   [6, 7, 8, 9],
   [2, 6, 7, 8],
   [1, 2, 6, 7],
];
const checkMatrix = (arr = []) => {
   const validate = (row, col) => {
      while (
         row < arr.length
         && col < arr[0].length
         && arr[row + 1]
         && arr[row + 1][col + 1] !== undefined
      ) {
         if (arr[row + 1][col + 1] !== arr[row][col]) {
            return false
         }
         row += 1
         col += 1
      }
      return true
   }
   for (let i = 0; i < arr[0].length; i++) {
      if (!validate(0, i)) {
         return false
      }
   }
   for (let i = 0; i < arr.length; i++) {
      if (!validate(i, 0)) {
         return false
      }
   }
   return true
}
console.log(checkMatrix(arr));

輸出

true

更新於:24-4-2021

61 次檢視

開啟你的 職業

透過完成課程獲得認證

開始
廣告
© . All rights reserved.