1042. 托普利兹矩阵

1042. 托普利兹矩阵

中文English

“托普利兹矩阵”是指如果从左上角到右下角的同一条主斜线上每个元素都相等的矩阵.

给定一个M x N矩阵,判断是否为“托普利兹矩阵”.

样例

样例 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]" 有不同的元素.

注意事项

  1. matrix 是一个二维整数数组.
  2. matrix 的行列范围都为 [1, 20].
  3. matrix[i][j] 的整数取值范围为[0, 99].
输入测试数据 (每行一个参数)如何理解测试数据?

 

class Solution:
    """
    @param matrix: the given matrix
    @return: True if and only if the matrix is Toeplitz
    """
    '''
    大致思路:
    1.首先外层大循环,循环matrix[0],检测右下方(x += 1,y += 1),是否和当前的值一样,len(matrix[0])有多少个则需要循环检测多少次。
    内部循环条件:
    while x+1 < len(matrix[0]) and y+1 < len(matrix) ,循环直到边缘处就跳出,继续外层大循环。
    给定初始比较值column,然后和下一个值即matrix[x+1][y+1]进行比较,如果不相等,直接return False,否则返回True
    '''
    def isToeplitzMatrix(self,matrix):
        x,y = 0,0
        for column in matrix[0]:
            #内层循环,下一值和当前值进行比较
            while x+1 < len(matrix[0]) and y+1 < len(matrix):
                x += 1
                y += 1
                if matrix[x][y] != column:
                    return False
        return True

 

posted @ 2020-03-31 12:07  风不再来  阅读(551)  评论(0编辑  收藏  举报