如果一個矩陣的每一方向由左上到右下的對角線上具有相同元素,那麼這個矩陣是
託普利茨矩陣。給定一個
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]"上的元素不同。複製程式碼
說明:
-
matrix
是一個包含整數的二維陣列。 matrix
的行數和列數均在[1, 20]
範圍內。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
};
複製程式碼