如果乙個矩陣的每一方向由左上到右下的對角線上具有相同元素,那麼這個矩陣是托普利茨矩陣。
給定乙個 m x n 的矩陣,當且僅當它是托普利茨矩陣時返回 true。
示例 1:
輸入:示例 2: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。
輸入:說明:matrix = [
[1,2],
[2,2]
] 輸出: false
解釋:
對角線」[1, 2]」上的元素不同。
matrix 是乙個包含整數的二維陣列。
matrix 的行數和列數均在 [1, 20]範圍內。
matrix[i][j] 包含的整數在 [0, 99]範圍內。
對每一條對角線依次判斷。
**如下:
class
solution:
defistoeplitzmatrix
(self, matrix):
""" :type matrix: list[list[int]]
:rtype: bool
"""m = len(matrix)
n = len(matrix[0])
i = 0
for j in range(n-2,-1,-1):
x = matrix[i][j]
k = i+1
p = j+1
while kand pif matrix[k][p] == x:
k = k+1
p = p+1
else:
return
false
j = 0
for i in range(1,m):
x = matrix[i][j]
k = i+1
p = j+1
while kand pif matrix[k][p] == x:
k = k+1
p = p+1
else:
return
false
return
true
除了第一行和第一列元素之外,判斷其餘的每個元素是否等於左上角的元素,即行數減1,列數減1。
class
solution:
defistoeplitzmatrix
(self, matrix):
""" :type matrix: list[list[int]]
:rtype: bool
"""row = len(matrix)
col = len(matrix[0])
for i in range(row):
for j in range(col):
if i-1 >= 0
and j-1 >= 0:
if matrix[i][j] != matrix[i-1][j-1]:
return
false
return
true
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...
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,...
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,...