原题地址(简单)

方法1—遍历

思路

太简单了,直接上代码吧。

代码

可以这样遍历

  1. class Solution {
  2. public:
  3. bool isToeplitzMatrix(vector<vector<int>>& matrix) {
  4. //先看行,再看列
  5. int row = matrix.size(), col = matrix[0].size();
  6. for(int i = 0; i < col; i++) {
  7. int a = 0, b = i;
  8. while(a < row && b < col) {
  9. if(matrix[a++][b++] != matrix[0][i])
  10. return false;
  11. }
  12. }
  13. for(int i = 0; i < row; i++) {
  14. int a = i, b = 0;
  15. while(a < row && b < col) {
  16. if(matrix[a++][b++] != matrix[i][0])
  17. return false;
  18. }
  19. }
  20. return true;
  21. }
  22. };

也可以这样遍历

  1. class Solution {
  2. public:
  3. bool isToeplitzMatrix(vector<vector<int>>& matrix) {
  4. int m = matrix.size(), n = matrix[0].size();
  5. for (int i = 1; i < m; i++) {
  6. for (int j = 1; j < n; j++) {
  7. if (matrix[i][j] != matrix[i - 1][j - 1]) {
  8. return false;
  9. }
  10. }
  11. }
  12. return true;
  13. }
  14. };

时空复杂度

时间766. 托普利茨矩阵 - 图1 空间766. 托普利茨矩阵 - 图2