1042. 托普利兹矩阵 python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
描述
“托普利兹矩阵”是指如果从左上角到右下角的同一条主斜线上每个元素都相等的矩阵.

给定一个M x N矩阵,判断是否为“托普利兹矩阵”.
matrix 是一个二维整数数组.
matrix 的行列范围都为 [1, 20].
matrix[i][j] 的整数取值范围为[0, 99].
您在真实的面试中是否遇到过这个题? 是
题目纠错
样例
样例 1:

输入: matrix = [[1,2,3,4],[5,1,2,3],[9,5,1,2]]
输出: True
解释:
1234
5123
9512

在上述矩阵中,主斜线上元素分别为 "[9]", "[5, 5]", "[1, 1, 1]", "[2, 2, 2]", "[3, 3]", "[4]", 每一条主斜线上元素都相等,所以返回`True`.


样例 2:

输入: matrix = [[1,2],[2,2]]
输出: False
解释:
主斜线 "[1, 2]" 有不同的元素.

简单题,直接代码:

python

1
2
3
4
5
6
7
8
9
10
11
12
class Solution:
"""
@param matrix: the given matrix
@return: True if and only if the matrix is Toeplitz
"""
def isToeplitzMatrix(self, matrix):
# Write your code here
for i in range(1,len(matrix)):
for j in range(1,len(matrix[0])):
if matrix[i][j]!=matrix[i-1][j-1]:
return False
return True

java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Solution {
/**
* @param matrix: the given matrix
* @return: True if and only if the matrix is Toeplitz
*/
public boolean isToeplitzMatrix(int[][] matrix) {
// Write your code here
int m = matrix.length;
int n = matrix[0].length;
for(int i=1;i<m;i++){
for(int j=1;j<n;j++){
if(matrix[i][j]!=matrix[i-1][j-1]){
return false;
}
}
}
return true;
}
}