java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 |
---|
解题思路 |
---|
- 这道题只要换一种理解方式,瞬间就会变的很简单。
- 题目描述是每个元素左上和右下对角线元素都相同。但是,我们发现除了第一行和第一列外,每个元素的左上角元素都与它相同。
- 所以这道题可以换一种理解方式。
除了第一行和第一列的元素以外的元素,如果左上角的元素和它不一样,那就不是托普利兹矩阵
代码:时间复杂度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;
}
}