Byte by Byte

766. Toeplitz Matrix.cpp 본문

개발 로그/알고리즘

766. Toeplitz Matrix.cpp

CyberSoak 2021. 11. 22. 13:57

🔑 재귀함수를 이용한 전체 탐색.

class Solution {
public:
    bool res = true;
    
    void check(int x, int y, int xlimit, int ylimit, int start, vector<vector<int>>& matrix){
        if(x == xlimit || y == ylimit) return;
        
        if(start != matrix[x][y]){
            res = false;
        }
        x++; y++;
        check(x,y,xlimit,ylimit,start,matrix);
        return;
    }
    
    
    bool isToeplitzMatrix(vector<vector<int>>& matrix) {
        int row = matrix.size();
        int col = matrix[0].size();
        for(int i = 0; i<row; i++){
            check(i,0,row,col,matrix[i][0], matrix);
        }
        for(int j =0; j<col; j++){
            check(0,j,row,col,matrix[0][j], matrix);
        }
        return res;
    }
};

 

✔ disscussion에 있는 다른 방법

    bool isToeplitzMatrix(vector<vector<int>>& matrix) {
      int m = matrix.size(), n = matrix[0].size();
      for (int i = 1; i < m; i++)
          for (int j = 1; j < n; j++)
              if (matrix[i][j] != matrix[i - 1][j - 1])
                  return false;
  	  return true;
 	}