博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcoder题目java_LeetCode算法题-Toeplitz Matrix(Java实现)
阅读量:4964 次
发布时间:2019-06-12

本文共 1035 字,大约阅读时间需要 3 分钟。

这是悦乐书的第312次更新,第333篇原创

01 看题和准备

今天介绍的是LeetCode算法题中Easy级别的第181题(顺位题号是766)。如果从左上角到右下角的每个对角线具有相同的元素,则矩阵是Toeplitz。现在给定一个M×N矩阵,当且仅当矩阵是Toeplitz时返回True。例如:

输入:矩阵= [[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。

输入:矩阵= [[1,2],[2,2]]

输出:错误

说明:对角线“[1,2]”具有不同的元素。

注意:

矩阵将是一个整数的二维数组。

矩阵将具有范围[1,20]中的多个行和列。

matrix [i] [j]将是范围[0,99]中的整数。

跟进:

1、如果矩阵存储在磁盘上,并且内存有限,以至于你一次只能将矩阵的最多一行加载到内存中,该怎么办?

2、如果矩阵太大而你只能一次将部分行加载到内存中怎么办?

本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。

02 解题

题目的要求是判断对角线上的值是否都相同,所以我们直接遍历数组,获取当前元素,判断它的右下元素(行和列都加1)是否与其相等,当然也可以判断左上方向,不等于就直接返回false。

另外,题目后面跟了两个问题,针对第一个问题可以使用HashMap或者队列的方式,存一次判断一次;针对第二个问题,根据每次能加载最大行数,将其分解。

public boolean isToeplitzMatrix(int[][] matrix) {

int r = matrix.length;

int c = matrix[0].length;

for (int i=0; i

for (int j=0; j

if (i+1

return false;

}

}

}

return true;

}

03 小结

算法专题目前已日更超过五个月,算法题文章181+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。

以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!

转载地址:http://ghqhp.baihongyu.com/

你可能感兴趣的文章
Listener
查看>>
STL中的内存分配器原理
查看>>
第四次
查看>>
MongoDB--Getting Started with Java Driver
查看>>
leetcode第一刷_Spiral Matrix II
查看>>
Cstyle的UEFI导读:第20.0篇 IGD OpRegion interface && IGD OpRegion PROTOCOL
查看>>
九宫重排
查看>>
Cocos2d-x v3.0 正式版 如何创建一个项目,TestCpp执行
查看>>
CareerCup Chapter 4 Trees and Graphs
查看>>
项目中登陆页面的显示
查看>>
布局学习笔记
查看>>
JZOJ 1782. Travel
查看>>
Office檔案格式(Office文件格式)
查看>>
Windows XP注册表与驱动程序优化全集
查看>>
Python3中关于下划线变量和命名的总结
查看>>
HiBench成长笔记——(5) HiBench-Spark-SQL-Scan源码分析
查看>>
HTML <fieldset> 标签
查看>>
comparable的compareTo( )方法 日常
查看>>
MySQL8身份验证问题解决
查看>>
zepto和jquery的区别,zepto的不同使用8条小结 会JS就会zepto
查看>>