1 题目概述
难度:简单
2 思路变迁
看到这个题 本来我是想复杂了:我想的是还要考虑矩阵m>n还是m<n。
感觉自己总是把问题复杂化。
写着写着,突然意识到对角线 的元素关系是递增的。这下思路明朗了,
直接顺着矩阵两条边进行遍历就好。
顺着思路coding了。
3 代码开搂
class Solution {
public boolean isToeplitzMatrix(int[][] matrix) {
if (matrix == null){return false;}
int m = matrix.length-1;
int n = matrix[0].length-1;
//向量直接就是脱离普斯矩阵
if (m == 0|| n == 0){return true;}
int i ,j; //行索引和列索引
int temp,temp2 ;//临时值 存当前对角线的值
//以1,2,3,4打头的对角线判断
i = 0;
for(j = 0; j <= n ; j ++ ){
temp = matrix[i][j]; //[1][1] = 1
temp2 = j; //记住j 因为后期要自增
while(i <= m && j <= n){
if(temp != matrix[i][j]){
return false;
}
i++;
j++;
}
i = 0; //i始终保持第一行
j = temp2 ;//j重新定义会刚才那个j,因为j自增了
}
//以5 9 打头的对角线判断
j = 0;
for(i = 1; i <= m ; i ++ ){
temp = matrix[i][j];
temp2 = i;
while(i <= m && j <= n){
if(temp != matrix[i][j]){
return false;
}
i++;
j++;
}
j = 0;
i = temp2 ;
}
return true;
}
}