java数据结构与算法刷题-----LeetCode766. 托普利茨矩阵

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846
解题思路
  1. 这道题只要换一种理解方式,瞬间就会变的很简单。
  2. 题目描述是每个元素左上和右下对角线元素都相同。但是,我们发现除了第一行和第一列外,每个元素的左上角元素都与它相同。
  3. 所以这道题可以换一种理解方式。除了第一行和第一列的元素以外的元素,如果左上角的元素和它不一样,那就不是托普利兹矩阵
代码:时间复杂度O(n*m) 空间复杂度O(1)
java 复制代码
class Solution {
    public boolean isToeplitzMatrix(int[][] matrix) {
        int m = matrix.length, n = matrix[0].length;//获取行和列
        //从第二行第二列开始,判断是否和左上角元素一致,如果不是,则不满足条件
        //因为第一行和第一列没有左上角元素,所以跳过
        for(int i = 1;i<m;i++){
            for(int j = 1; j<n;j++){
                if(matrix[i][j] != matrix[i-1][j-1]) return false;
            }
        }
        //如果每个元素,都满足和左上角元素一致,那么返回true
        return true;
    }
}
相关推荐
青山木1 分钟前
Hot 100 --- 划分字母区间
java·数据结构·算法·leetcode·贪心算法
Zzzzmo_4 分钟前
SpringBoot 配置文件
java·spring boot
君顾19 分钟前
外卖CPS小程序开发实战指南:从零到上线的完整流程
java·开发语言·外卖
無a伟9 分钟前
RabbitMq高级特性:消息确认,持久化,重试机制
java·分布式·rabbitmq
Sunsets_Red17 分钟前
浅谈扫描线
c++·算法·编程·题解·洛谷·扫描线·信息学竞赛
流烟默19 分钟前
xxl-job 接入 Spring 的两种方式:手动装配与自动装配(含 initMethod 双启动踩坑实录)
java·spring·xxl-job
a1879272183120 分钟前
【算法】双指针与滑动窗口(一):框架总纲——三类问题、一个原理与判决书
算法·leetcode·区间·双指针·滑动窗口·原理·算法讲解
鹅城剑仙20 分钟前
Spring Boot 3 全局异常处理与统一响应封装进阶实战
java·spring boot·后端
shehuiyuelaiyuehao23 分钟前
算法42,模拟算法,模拟z字形变换
算法
朝朝辞暮i26 分钟前
C++第一课
开发语言·c++·算法