博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode-766-Toeplitz Matrix(每一条对角线元素的比较)
阅读量:7040 次
发布时间:2019-06-28

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

题目描述:

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: TrueExplanation:123451239512In 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: FalseExplanation: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].

 

要完成的函数:

bool isToeplitzMatrix(vector<vector<int>>& matrix) 

 

说明:

1、这道题题意很清晰,给定一个矩阵,判断矩阵上的所有对角线,每一条对角线上的元素值是不是都相等,比如题目中给的例1,就是一个满足条件的矩阵。最后返回true或者false,表示矩阵满不满足条件。

 

2、笔者最开始觉得这道题又是比较麻烦的题目,又要设置行i列j的条件限制,然后一一比较元素值。但后来重新扫了一遍题目叙述,发现可以逐行地搬下来比较,没有被比较到的元素,也刚好就是不用比较的。

举个例子,第一行除了最后一个之外的其余元素,都搬下来与第二行的元素进行比较,而第二行第一个元素不会被比较到,也刚好就是不用比较的,只需要之后跟第三行比较。

所以,逻辑清晰,代码如下:

bool isToeplitzMatrix(vector
>& matrix) { int row=matrix.size(),col=matrix[0].size(); int i=0,j; while(i

上述代码实测20ms,beats 77.39% of cpp submissions。

转载于:https://www.cnblogs.com/chenjx85/p/9041091.html

你可能感兴趣的文章
sqlserver datetime的bug?
查看>>
python中元组tuple详细解析
查看>>
UVA 11178 Morley's Theorem (计算几何)
查看>>
颜色渐变的柱状图
查看>>
基于vue-cli配置移动端自适应
查看>>
处理eclipse启动时报java.lang.IllegalStateException
查看>>
BAT美团滴滴java面试大纲(带答案版)之四:多线程Lock
查看>>
第一次作业
查看>>
51nod 1068 Bash游戏 V3 博弈
查看>>
vue-axios当只调用vue.js又需要axios请求多时
查看>>
CodeM美团点评编程大赛初赛A轮
查看>>
SSM框架快速整合的实例-学生查询
查看>>
42行代码完成深入虎穴
查看>>
symantec:硝基***针对化工厂商
查看>>
PowerShell 学习笔记——PS On MacOS
查看>>
唠唠 RDS 那些事 ——RDS 服务部署
查看>>
twisted应用中异步回调的方式及线程的应用
查看>>
c#调用oracle存储过程
查看>>
我与学院的点点滴滴
查看>>
Windows Server 2016之Nano Server简介
查看>>