挺水的一题。。但是wrong了一次。
我的解法:
class Solution {
public:bool isToeplitzMatrix(vector<vector<int>>& matrix) {
int m = matrix.size();
int n = matrix[0].size();
for(int i=0;i<m;i++)
{
int j=0;
int ii=i;
int start= matrix[ii][j];
while(ii+1<m&&j+1<n)
{
ii+=1;j+=1; //一开始没有写ii,直接是i。与for循环中的i++相冲突。
if(matrix[ii][j]!=start) //相当于上一次迭代影响了下一次
return false;
}
}
for(int j=1;j<n;j++)
{
int i=0;
int jj=j;
int start=matrix[i][jj];
while(i+1<m&&jj+1<n)
{
i+=1; jj+=1;
if(matrix[i][jj]!=start)
return false;
}
}
return true;
}
};
看了其他人的解法 都是O(n^2)的算法,顶多代码简明一点