给你一个 m x n 的矩阵 matrix 。如果这个矩阵是托普利茨矩阵,返回 true ;否则,返回 false 。
如果矩阵上每一条由左上到右下的对角线上的元素都相同,那么这个矩阵是 托普利茨矩阵 。
思路:首先设置一个标志位,外层循环第一行元素,在外层循环的基础上行号和列号循环加一,直到达到行列的边界,若出现不相等的情况这改变标志位,若标志位改变这不符合条件返回false。
#include<iostream>
using namespace std;
bool islb(int m,int n);
int a[3][4]={1,2,3,4,
4,1,2,3,
4,3,1,2};
int main()
{
cout<<islb(3,4);
return 0;
}
bool islb(int m,int n)
{
int t=0;
for(int i=0;i<n;i++)
for(int j=0,k=i;j<m-1&&k<n-1;j++,k++)
{
if(a[j][k]!=a[j+1][k+1])
t=1;
}
if(t==0)
return true;
else
return false;
}