【Leetcode】766. Toeplitz Matrix

題目地址:

https://leetcode.com/problems/toeplitz-matrix/

給定一個矩陣,如果其所有左上到右下的對角線上面的值都相同,則稱其爲Toeplitz矩陣。判斷一個矩陣是否是Toeplitz矩陣。注意最左下和最右上的那個對角線就不用判斷了。代碼如下:

public class Solution {
    public boolean isToeplitzMatrix(int[][] matrix) {
        for (int i = matrix.length - 2; i > 0; i--) {
            if (!check(matrix, i, 0)) {
                return false;
            }
        }
        for (int i = 0; i < matrix[0].length - 1; i++) {
            if (!check(matrix, 0, i)) {
                return false;
            }
        }
        return true;
    }
    
    private boolean check(int[][] matrix, int i, int j) {
        int n = matrix[i][j];
        i++;
        j++;
        while (i < matrix.length && j < matrix[0].length) {
            if (matrix[i][j] != n) {
                return false;
            }
            i++;
            j++;
        }
        
        return true;
    }
}

時間複雜度O(nm)O(nm),空間O(1)O(1)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章