python-leetcode-766. 託普利茨矩陣

題目描述:
如果一個矩陣的每一方向由左上到右下的對角線上具有相同元素,那麼這個矩陣是託普利茨矩陣。
給定一個 M x N 的矩陣,當且僅當它是託普利茨矩陣時返回 True。
示例 1:
輸入:
matrix = [
[1,2,3,4],
[5,1,2,3],
[9,5,1,2]
]
輸出: True
解釋:
在上述矩陣中, 其對角線爲:
“[9]”, “[5, 5]”, “[1, 1, 1]”, “[2, 2, 2]”, “[3, 3]”, “[4]”。
各條對角線上的所有元素均相同, 因此答案是True。
示例 2:
輸入:
matrix = [
[1,2],
[2,2]
]
輸出: False
解釋:
對角線"[1, 2]"上的元素不同。
說明:
matrix 是一個包含整數的二維數組。
matrix 的行數和列數均在 [1, 20]範圍內。
matrix[i][j] 包含的整數在 [0, 99]範圍內。

解法一:

class Solution(object):
    def isToeplitzMatrix(self, matrix):
        """
        :type matrix: List[List[int]]
        :rtype: bool
        """
        s = matrix[0]
        for i in range(1,len(matrix)):
            if s[:-1] == matrix[i][1:]:
                s = matrix[i]
            else:
                return False
        return True

解法二:

class Solution:
    def isToeplitzMatrix(self, matrix: List[List[int]]) -> bool:
        M = len(matrix)
        N = len(matrix[0])
        for i in range(M-1):#matrix[0][N-1]與matrix[M-1][0]不需要判斷
            for j in range(N-1):
                if matrix[i][j] != matrix[i+1][j+1]:
                    return False
        return True
發佈了67 篇原創文章 · 獲贊 6 · 訪問量 9939
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章