原题地址:https://leetcode.com/problems/toeplitz-matrix/description/
大意:判断一个矩阵是不是toeplitz矩阵
思路1:
从维基百科的定义中我们看到,只要a[i+1,j+1] == a[i,j],即一个元素右下角的数等于该数就行了。
def isToeplitzMatrix2(self, matrix):
"""
:type matrix: List[List[int]]
:rtype: bool
"""
for row in range(len(matrix) - 1):
for col in range(len(matrix[0]) - 1):
if matrix[row][col] != matrix[row + 1][col + 1]:
return False
return True
思路2:
只要后一行的后半片等于前一行的前半片。就可以判断为toeplitz matrix
def isToeplitzMatrix(self, matrix):
"""
:type matrix: List[List[int]]
:rtype: bool
"""
return all(matrix[row + 1][1:] == matrix[row][:-1] for row in range(len(matrix) - 1))
后记:
这道题目没有什么技术性的难点,主要是学会观察给定矩阵的特点。
all()
函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。
def all(iterable):
for element in iterable:
if not element:
return False
return True
网友评论