题目来源
题目描述
题目解析
检查左上邻居
public static boolean isToeplitzMatrix(int[][] matrix) {
for (int i = 0; i < matrix.length - 1; i++){
for (int j = 0; j < matrix[i].length - 1; j++){
if (matrix[i][j] != matrix[i + 1][j + 1]){
return false;
}
}
}
return true;
}
public static void main(String[] args) {
System.out.println(isToeplitzMatrix(new int[][] {
{1,2,3,4},
{5,1,2,3},
{9,5,1,6}
}
));
}
时间复杂度: O(M*N)O(M∗N)。
空间复杂度: O(1)O(1)。
进阶1
每次维护一个数组,存上一行的值,然后跟整个数组遍历比较
bool isToeplitzMatrix(vector<vector<int>>& matrix) {
vector<int> tmp = matrix[0];
for (int i = 1; i < matrix.size(); ++i) {
for (int j = 1; j < matrix[i].size(); ++j) {
if(matrix[i][j] != tmp[j - 1]){
return false;
}
}
tmp = matrix[i];
}
return true;
}