# 766. Toeplitz Matrix

A matrix is  Toeplitz  if every diagonal from top-left to bottom-right has the same element.

Now given an `M x N` matrix, return `True` if and only if the matrix is  Toeplitz.

Example 1:

``````Input: matrix = [[1,2,3,4],[5,1,2,3],[9,5,1,2]]
Output: True
Explanation:
1234
5123
9512

In the above grid, the diagonals are "[9]", "[5, 5]", "[1, 1, 1]", "[2, 2, 2]", "[3, 3]", "[4]", and in each diagonal all elements are the same, so the answer is True.
``````

Example 2:

``````Input: matrix = [[1,2],[2,2]]
Output: False
Explanation:
The diagonal "[1, 2]" has different elements.
``````

Note:

1. `matrix` will be a 2D array of integers.
2. `matrix` will have a number of rows and columns in range `[1, 20]`.
3. `matrix[i][j]` will be integers in range `[0, 99]`.

1 2 3 4
5 1 2 3
9 5 1 2

``````class Solution {
public:
bool isToeplitzMatrix(vector<vector<int>>& matrix) {
int m = matrix.size(), n = matrix[0].size(), p = m - 1, q = 0;
while (p >= 0 && q < n) {
int val = matrix[p][q], i = p, j = q;
while (i + 1 < m && j + 1 < n) {
if (matrix[++i][++j] != val) return false;
}
(p > 0) ? --p : ++q;
}
return true;
}
};
``````

``````class Solution {
public:
bool isToeplitzMatrix(vector<vector<int>>& matrix) {
for (int i = 0; i < matrix.size() - 1; ++i) {
for (int j = 0; j < matrix[i].size() - 1; ++j) {
if (matrix[i][j] != matrix[i + 1][j + 1]) return false;
}
}
return true;
}
};
``````

Valid Word Square

https://leetcode.com/problems/toeplitz-matrix/discuss/113417/Java-solution-4-liner.

LeetCode All in One 题目讲解汇总(持续更新中…)

 微信打赏 Venmo 打赏
（欢迎加入博主的知识星球，博主将及时答疑解惑，并分享刷题经验与总结，试运营期间前五十位可享受半价优惠～）

×

Help us with donation