算法提高之LeetCode刷题LeetCode Python算法

766. Toeplitz Matrix

2018-07-11  本文已影响0人  fred_33c7

原题地址: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
上一篇 下一篇

猜你喜欢

热点阅读