leetcode 766. Toeplitz Matrix

A matrix is Toeplitz if every diagonal from top-left to bottom-right has the same element.

Now given an M x N matrix, return True if and only if the matrix is Toeplitz.
 

Example 1:

Input: matrix = [[1,2,3,4],[5,1,2,3],[9,5,1,2]]
Output: True
Explanation:
1234
5123
9512

In the above grid, the diagonals are "[9]", "[5, 5]", "[1, 1, 1]", "[2, 2, 2]", "[3, 3]", "[4]", and in each diagonal all elements are the same, so the answer is True.

Example 2:

Input: matrix = [[1,2],[2,2]]
Output: False
Explanation:
The diagonal "[1, 2]" has different elements.

Note:

  1. matrix will be a 2D array of integers.
  2. matrix will have a number of rows and columns in range [1, 20].
  3. matrix[i][j] will be integers in range [0, 99].
复制代码
class Solution(object):
    def isToeplitzMatrix(self, matrix):
        """
        :type matrix: List[List[int]]
        :rtype: bool
        """
        """
1234
5123
9512
        #judge all matrix[i][j]==matrix[i-1][j-1]
        
        row = len(matrix)
        col = len(matrix[0])
        for i in range(1, row):
            for j in range(1, col):
                if matrix[i][j] != matrix[i-1][j-1]:
                    return False
        return True
        """
        
        return all(matrix[i][j] == matrix[i+1][j+1] for i in range(len(matrix)-1) for j in range(len(matrix[0])-1))

        """
>>> all([1,2,3])
True
>>> all([1,2,3,0])
False
>>> print([i*j for i in range(1,3) for j in range(9,7,-1)])
[9, 8, 18, 16]
"""
复制代码

 另外一种利用切片思路:

复制代码
class Solution(object):
    def isToeplitzMatrix(self, matrix):
        """
        :type matrix: List[List[int]]
        :rtype: bool
        """
        for i in range(len(matrix)-1):
            if matrix[i][:-1]!=matrix[i+1][1:]: 
                return False
        return True
复制代码

 

posted @   bonelee  阅读(198)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
历史上的今天:
2017-03-08 Go语言的管道Channel用法
2017-03-08 mongodb给我们提供了fsync+lock机制把数据暴力的刷到硬盘上
2017-03-08 cassandra压缩——从文档看,本质上也应该是在做块压缩
2017-03-08 mongodb压缩——snappy、zlib块压缩,btree索引前缀压缩
2017-03-08 python cassandra 创建space table并写入和查询数据
2017-03-08 机器学习算法选择——特征提取
2017-03-08 机器学习的算法选择
点击右上角即可分享
微信分享提示