您的位置:首页 > 其它

leetcode 打卡 2018.03.06 #766 Toepliz Matrix

2018-03-06 22:51 375 查看
766  Toepliz Matrix 

[b]A matrix is Toeplitz if every diagonal from top-left to bottom-right has the same element.
[/b]
[b]Now given an M x N matrix, return True if and only if the matrix is Toeplitz.[/b]# leetcode Toepliz Matrix
#hint: 判断每条对角线上的值是否相等 ——>
#对角线即 r1 - c1 = r2 - c2 那么,(r1,c1) (r2,c2) 在同一对角线上
#所以 group为 每个矩阵元素的行列号差值,与矩阵元素值组成的 字典 (行列号差值对应矩阵元素值固定)
class Solution:
def isToeplitzMatrix(self, matrix):
groups = {}
for r ,row in enumerate(matrix): #创建行数据索引 r即行号
for c ,val in enumerate(row): #创建每个数的索引 c即列号 val 即值
if r-c not in groups:
groups[r-c] = val #遍历矩阵 建立groups
elif groups[r-c] != val:
return False
return True

Solution 2 : compare with top-left neighbor
补充:all()函数 
参考:all() 函数#solution 2
# every diagonal from top-left to bottom-right has the same element,
#so we just need to check (r == 0 ,c ==0 ) or( martix(r,c) == matric(r-1,c-1))

class Solution:
def isToeplitzMatrix(self,matrix):
return all( r == 0 or c == 0 or matrix[r-1][c-1] == val
for r,row in enumerate(matrix)
for c,val in enumerate(row))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: