题目详情

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.

如果一个矩阵的每一条斜对角线(左上到右下)上的元素都相等,则我们称它为托普利兹矩阵。现在输入一个M*N大小的矩阵,如果它是一个托普利兹矩阵,则返回true,如果不是,返回false。

Example 1:
Input: matrix = [[1,2,3,4],[5,1,2,3],[9,5,1,2]]
Output: True
Explanation:
1234
5123
9512
在上面的矩阵中, 矩阵的所有斜对角线为 "[9]", "[5, 5]", "[1, 1, 1]", "[2, 2, 2]", "[3, 3]", "[4]", 每一个对角线上的元素都相等,因此返回true。
Example 2:
Input: matrix = [[1,2],[2,2]]
Output: False
Explanation:
斜对角线 "[1, 2]" 元素的值不等,返回false。

想法

  • 基本想法就是遍历每一个元素,同时比较这个元素和它右下角元素的值是否相等,如果不相等,直接返回false,停止遍历。

解法

    public boolean isToeplitzMatrix(int[][] matrix) {
                for(int i=0;i<matrix.length-1;i++){
            for(int j=0;j<matrix[0].length-1;j++){
                if(matrix[i][j] != matrix[i+1][j+1]){
                    return false;
                }
            }
        }
        
        return true;
    }

soleil阿璐
350 声望45 粉丝

stay real ~