在这个问题中,我们得到大小为n * n的2D方阵mat [] []。我们的任务是查找给定的矩阵是否为Toeplitz。
Toeplitz矩阵 也称为对角矩阵,是指对角线上的元素从左上角到右下角开始的矩阵。
输入:
Mat [] [] = {{3,5,1},
{4,3,2},
{1,2,3}}
输出: 是
解释:
对角线:(0,0),(1,1),(2,2)具有相同的值3。
解决方法:
解决该问题的一种简单方法是检查对角线索引处的所有元素。这些对角线值将是i和j值相同的索引。
因此,我们需要检查所有i-> 0到n和j-> 0到n。如果i = j,并且mat [i] [j]都相同。
#include <iostream>
using namespace std;
#define N 4
bool isToeplizMatrix(int mat[N][N])
{
int diagVal = mat[0][0];
for(int i = 0; i < N ; i++)
{
if(mat[i][i] != diagVal){
return false;
}
}
return true;
}
int main(){
int mat[N][N] = { { 6, 7, 8, 9 },
{ 4, 6, 7, 8 },
{ 1, 4, 6, 7 },
{ 0, 1, 4, 6 }};
if (isToeplizMatrix(mat))
cout<<"矩阵是Toepliz矩阵。";
else
cout<<"矩阵不是Toepliz矩阵。";
return 0;
}输出结果矩阵是Toepliz矩阵。