【数组相关】766. 托普利茨矩阵

原题链接:https://leetcode-cn.com/problems/toeplitz-matrix/



主要找到每个从左上到右下的开头即可,所以大致可以将矩阵分为两个部分

绿色区域我们设定开头从第1行找;黄色区域我们设定开头从第1列找(抛去第1行第1列)

如上图所示,先找到绿色区域的开头,然后在从每一个开头开始向右下连续相等判断;再找到黄色区域的头,然后在从每一个开头开始向右下连续相等判断;

class Solution {
    public boolean isToeplitzMatrix(int[][] matrix) {
        int row=matrix.length;
	int col=matrix[0].length;
	for(int i=0;i<col-1;i++){
        	int x=1;
		int y=i+1;
		while(x>=0&&x<row&&y>=0&&y<col){
			if(matrix[x][y]!=matrix[0][i]){
				return false;
			}
			x++;
			y++;
		}
	}
	for(int i=1;i<row-1;i++){
		int x=i+1;
		int y=1;
		while(x>=0&&x<row&&y>=0&&y<col){
			if(matrix[x][y]!=matrix[i][0]){
				return false;
			}
			x++;
			y++;
		}
	}
	return true;
    }
}
发布了88 篇原创文章 · 获赞 142 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/u010189239/article/details/104790385