leetcode 766 托普利茨矩陣

2021-08-22 10:19:19 字數 1865 閱讀 5177

如果乙個矩陣的每一方向由左上到右下的對角線上具有相同元素,那麼這個矩陣是托普利茨矩陣。

給定乙個 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:

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,...