766. Toeplitz Matrix

作者: fred_33c7 | 来源:发表于2018-07-11 11:07 被阅读0次

    原题地址:https://leetcode.com/problems/toeplitz-matrix/description/
    大意:判断一个矩阵是不是toeplitz矩阵

    wiki的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
    

    相关文章

      网友评论

        本文标题:766. Toeplitz Matrix

        本文链接:https://www.haomeiwen.com/subject/dnzcpftx.html