若是一個矩陣的每一方向由左上到右下的對角線上具備相同元素,那麼這個矩陣是託普利茨矩陣。java
給定一個 M x N 的矩陣,當且僅當它是託普利茨矩陣時返回 True。數組
示例 1:ide
輸入:
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:spa
輸入:
matrix = [
[1,2],
[2,2]
]
輸出: False
解釋:
對角線"[1, 2]"上的元素不一樣。
說明:code
matrix 是一個包含整數的二維數組。
matrix 的行數和列數均在 [1, 20]範圍內。
matrix[i][j] 包含的整數在 [0, 99]範圍內。
進階:內存
若是矩陣存儲在磁盤上,而且磁盤內存是有限的,所以一次最多隻能將一行矩陣加載到內存中,該怎麼辦?
若是矩陣太大以致於只能一次將部分行加載到內存中,該怎麼辦?it
class Solution { public boolean isToeplitzMatrix(int[][] matrix) { for(int i=1;i<matrix.length;i++) { for(int j=1;j<matrix[0].length;j++) { if(matrix[i][j]!=matrix[i-1][j-1]) { return false; } } } return true; } }
若是一個矩陣的每一方向由左上到右下的對角線上具備相同元素,那麼這個矩陣是託普利茨矩陣。io
給定一個 M x N 的矩陣,當且僅當它是託普利茨矩陣時返回 True。class
示例 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]範圍內。
進階:
若是矩陣存儲在磁盤上,而且磁盤內存是有限的,所以一次最多隻能將一行矩陣加載到內存中,該怎麼辦?
若是矩陣太大以致於只能一次將部分行加載到內存中,該怎麼辦?
class Solution { public boolean isToeplitzMatrix(int[][] matrix) { for(int i=1;i<matrix.length;i++) { for(int j=1;j<matrix[0].length;j++) { if(matrix[i][j]!=matrix[i-1][j-1]) { return false; } } } return true; } }