class Solution {
public:
bool isToeplitzMatrix(vector<vector<int>>& matrix) {
int m=matrix.size(),n=matrix[0].size();
for(int k=0;k<n;k++){
int i=0,j=k;
while((i+1<m) && (j+1<n)){
if(matrix[0][k]!=matrix[i+1][j+1])
return false;
else{
i++;
j++;
}
}
}
for(int l=0;l<m;l++){
int i=l,j=0;
while((i+1<m) && (j+1<n)){
if(matrix[l][0]!=matrix[i+1][j+1])
return false;
else{
i++;
j++;
}
}
}
return true;
}
};
My Solution
从第一行往下找,从第一列往后找。
然而对提升速度并没有什么乱用,大概是计算机做这种运算太快了2333,如果矩阵特别大的话,这种应该还是有辣么一点优势。
Better Solution
两个for循环暴力来就行了2333
Attention
注意数据规模
class Solution {
public:
bool isToeplitzMatrix(vector<vector<int>>& matrix) {
if(matrix.empty() || matrix[0].empty()) {
return true;
}
int row = matrix.size();
int col = matrix[0].size();
for(int i = 0; i < row - 1; i++) {
for(int j = 0; j < col - 1; j++) {
if(matrix[i][j] != matrix[i+1][j+1]) {
return false;
}
}
}
return true;
}
};