Ma trận Toeplitz: mọi đường chéo từ trên-trái xuống dưới-phải có cùng giá trị.
Ví dụ 1
[[1,2,3,4],
[5,1,2,3],
[9,5,1,2]]
Output: true
Các đường chéo: "[9]", "[5,5]", "[1,1,1]", "[2,2,2]", "[3,3]", "[4]" - tất cả phần tử giống nhau.
Ví dụ 2
[[1,2],
[2,2]]
Output: false
Đường chéo "[1,2]" có phần tử khác nhau.
Code
public class Matrix
{
public bool IsToeplitzMatrix(int[,] mat)
{
int rows = mat.GetLength(0);
int cols = mat.GetLength(1);
for (int i = 1; i < rows; i++)
{
for (int j = 1; j < cols; j++)
{
if (mat[i, j] != mat[i - 1, j - 1])
{
return false;
}
}
}
return true;
}
}
static void Main(string[] args)
{
Matrix m = new Matrix();
int[,] mat = new int[3, 4] { { 1, 2, 3, 4 }, { 5, 1, 2, 3 }, { 9, 5, 1, 2 } };
Console.WriteLine(m.IsToeplitzMatrix(mat)); // Output: True
}
Kết quả đầu ra
True