LeetCode #766. Toeplitz Matrix
题目
解题方法
采用模拟法,从左下角开始向左上角遍历,再从左上角开始向右上角遍历,在每次遍历中再遍历当前对角线所有元素,如果不相等直接返回False,所有遍历结束后返回True。
时间复杂度:O(m*n)
空间复杂度:O(1)
代码
class Solution:
def isToeplitzMatrix(self, matrix: List[List[int]]) -> bool:
m = len(matrix) - 2
n = 0
while m > 0:
curnum = matrix[m][n]
i, j = m + 1, n + 1
while i < len(matrix) and j < len(matrix[0]):
if matrix[i][j] != curnum:
return False
i, j = i + 1, j + 1
m -= 1
else:
m = 0
while n < len(matrix[0]) - 1:
curnum = matrix[m][n]
i, j = m + 1, n + 1
while i < len(matrix) and j < len(matrix[0]):
if matrix[i][j] != curnum:
return False
i, j = i + 1, j + 1
n += 1
return True

浙公网安备 33010602011771号