【LeetCode】766. 託普利茨矩陣

minhuaF發表於2018-07-10

如果一個矩陣的每一方向由左上到右下的對角線上具有相同元素,那麼這個矩陣是

託普利茨矩陣。給定一個 M x N 的矩陣,當且僅當它是託普利茨矩陣時返回 True

示例 1:

輸入: 
matrix = [
  [1,2,3,4],
  [5,1,2,3],
  [9,5,1,2]
]
輸出: True
解釋:
在上述矩陣中, 其對角線為:
"[9]", "[5, 5]", "[1, 1, 1]", "[2, 2, 2]", "[3, 3]", "[4]"。
各條對角線上的所有元素均相同, 因此答案是True。複製程式碼

示例 2:

輸入:
matrix = [
  [1,2],
  [2,2]
]
輸出: False
解釋: 
對角線"[1, 2]"上的元素不同。複製程式碼

說明:

  1. matrix 是一個包含整數的二維陣列。
  2. matrix 的行數和列數均在 [1, 20]範圍內。
  3. matrix[i][j] 包含的整數在 [0, 99]範圍內。


思路

需要(matrix.length -1)* (matrix[0].length-1) 這麼多次的對比,判斷每個元素與其右下角元素是否相等 matrix[i][j] != matrix[i-1][j-1]

注意兩個巢狀迴圈的順序

/**
 * @param {number[][]} matrix
 * @return {boolean}
 */
var isToeplitzMatrix = function(matrix) {
    for(let i = 0; i < matrix.length - 1; i++) {
        for(let j = 0; j < matrix[0].length - 1; j++) {
            if(matrix[i][j] !== matrix[i+1][j+1]){
                return false
            }
        }
    }
    return true
};
複製程式碼


相關文章