Toeplitz Matrix[Medium] (Pramp-Java)

Harika Ravali Valeti
1 min readFeb 24, 2021

Problem Description: A Toeplitz matrix is a matrix where every left-to-right-descending diagonal has the same element. Given a non-empty matrix arr, write a function that returns true if and only if it is a Toeplitz matrix. The matrix can be any dimensions, not necessarily square.

For example,

[[1,2,3,4],
[5,1,2,3],
[6,5,1,2]]

is a Toeplitz matrix, so we should return true, while

[[1,2,3,4],
[5,1,9,3],
[6,5,1,2]]

isn’t a Toeplitz matrix, so we should return false.

Constraints:

  • [time limit] 5000ms
  • [input] array.array.integer arr
  • 0 ≤ arr.length ≤ 20
  • 0 ≤ arr[i].length ≤ 20
  • 0 ≤ arr[i][j] ≤ 20
  • [output] boolean

Approach: Every element belongs to some diagonal, and it’s previous element (if it exists) is it’s top-left neighbor. Thus, for the square (r, c), we only need to check r == 0 OR c == 0 OR arr[r-1][c-1] == arr[r][c].

Solution:

public boolean isTopelitzMatrix(int[] arr)
{
if(arr.length==0) return true;
for(int r=0; r<arr.length; r++)
{
for(int c=0; c<arr[0].length; c++)
{
if(r>0 && c>0 && arr[r-1][c-1] != arr[r][c])
{
return false;
}
}
}
return true;
}

Time & Space complexity:

  • Time Complexity: O(r*c), r-number of rows in matrix, c-number of columns in matrix.
  • Space Complexity: O(1)

--

--

Harika Ravali Valeti

Software Developer @UnitedHealthGroup ‘Tell me and I forget. Teach me and I remember. Involve me and I learn.’ Writing stories from my learnings...