題目地址:
https://leetcode.com/problems/toeplitz-matrix/
給定一個矩陣,如果其所有左上到右下的對角線上面的值都相同,則稱其爲Toeplitz矩陣。判斷一個矩陣是否是Toeplitz矩陣。注意最左下和最右上的那個對角線就不用判斷了。代碼如下:
public class Solution {
public boolean isToeplitzMatrix(int[][] matrix) {
for (int i = matrix.length - 2; i > 0; i--) {
if (!check(matrix, i, 0)) {
return false;
}
}
for (int i = 0; i < matrix[0].length - 1; i++) {
if (!check(matrix, 0, i)) {
return false;
}
}
return true;
}
private boolean check(int[][] matrix, int i, int j) {
int n = matrix[i][j];
i++;
j++;
while (i < matrix.length && j < matrix[0].length) {
if (matrix[i][j] != n) {
return false;
}
i++;
j++;
}
return true;
}
}
時間複雜度,空間。