zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    子类父类拥有同名的方法时……
    大道至简第六章阅读感想
    大道至简第五章阅读感想
    java中子类与基类变量间的赋值
    继承与接口的使用
    产生10个随机数求和及一些产生随机数相关知识
    【文件处理】xml 文件 SAX解析
    【文件处理】xml 文件 DOM解析
    【文件处理】RandomAccessFile
    【Directory】文件操作(初识文件操作二)
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12604237.html
Copyright © 2011-2022 走看看