Toeplitz Matrix

Easy
0/40
Average time to solve is 25m
3 upvotes
Asked in companies
FacebookAmazonGoogle inc

Problem statement

You are given a matrix of size N * M. You have to find out whether the matrix is Toeplitz or not.

A Matrix is said to be Toeplitz if every diagonal from top-left to bottom-right has the same elements.

You are given the matrix ‘MAT’ of size N * M.Your task is to find out whether it is Toeplitz or not.

For Example
 The given matrix is Toeplitz:

altImage

Detailed explanation ( Input/output format, Notes, Images )
Input Format:
The first line of the input contains an integer, 'T,’ denoting the number of test cases.

The first line of each test case contains two integers,' N’ and ‘M’ denoting the number of rows and columns.

The next line of each test case has ‘N’ lines that have M values corresponding to the matrix ‘MAT’.
Output Format:
For each test case, print ‘YES’ or ‘NO’ whether the matrix is Toeplitz or not.

 Print the output of each test case in a separate line.
Note:
You do not need to print anything. It has already been taken care of. Just implement the given function.
Constraints:
1 <= T <= 10
1 <= N <= 1000.
1 <= M <= 1000.

Time limit: 1 sec
Sample Input 1:
2
3 3
2 1 3
1 2 1
5 1 2
4 3
0 0 0
7 0 1
1 7 0
0 1 7
Sample Output 1:
YES
NO
Explanation of sample input 1:
For the first test case,

altImage

All the diagonals of the given matrix has same values.Hence, the given matrix is Toeplitz.

For the second test case:
The diagonal with cells (0,1) and  (1,2) does not have the same elements. Hence, the matrix is not Toeplitz.
Sample Input 2:
2
4 3
10 10 10 
4 10 10 
2 10 10 
4 4 8 
3 4
5 10 4 10 
5 5 10 4 
9 5 5 10
Sample Output 2:
NO
YES
Hint

Check every diagonal.

Approaches (1)
Brute Force

In this approach, we will iterate all the diagonals and if we found any element mismatched, the matrix is not Toeplitz. Otherwise, the matrix is Toeplitz.

If all diagonal elements are identical then they should follow :

MAT[i][j] == MATt[i-1][j-1].

 

Algorithm:

 

  • For i in range(1,n-1):
    • For j in range(1,m-1):
      • If MAT[i][j] is not equal to  MAT[i-1][j-1]:
        • Found a mismatched element.
        • Return False
  • Otherwise, the matrix is Toeplitz.
  • Return True.
Time Complexity

O(M*N), where ‘N’ and ‘M’ represent the rows and columns of the matrix.

 

In this approach, each cell of the given matrix only once and checking the diagonal element. Hence, the overall time complexity is O(M*N).

Space Complexity

O(1).

 

In this approach, we are using constant space. Hence, the overall space complexity is O(1).

Code Solution
(100% EXP penalty)
Toeplitz Matrix
Full screen
Console