2319. 判断矩阵是否是一个 X 矩阵
如果一个正方形矩阵满足下述 全部 条件,则称之为一个 X 矩阵 :
矩阵对角线上的所有元素都 不是 0
矩阵中所有其他元素都是 0
给你一个大小为 n x n 的二维整数数组 grid ,表示一个正方形矩阵。如果 grid 是一个 X 矩阵 ,返回 true ;否则,返回 false 。
示例1:
输入:grid = [[2,0,0,1],[0,3,1,0],[0,5,2,0],[4,0,0,2]]
输出:true
解释:矩阵如上图所示。
X 矩阵应该满足:绿色元素(对角线上)都不是 0 ,红色元素都是 0 。
因此,grid 是一个 X 矩阵。
示例 2:
输入:grid = [[5,7,0],[0,3,1],[0,5,0]]
输出:false
解释:矩阵如上图所示。
X 矩阵应该满足:绿色元素(对角线上)都不是 0 ,红色元素都是 0 。
因此,grid 不是一个 X 矩阵。
解题思路:
我们需要通过两方面来判断是否是X矩阵,一是通过判断对角线上的元素是否都不为0,二是判断其余元素都为0;1、两条对角线上的元素分别为grid[i][i]和grid[len-1-i][i],2、其余元素的判断我们首先要排除该元素是对角线上的元素,即i!=j&&i+j!=len-1,只有这样才能判断其余元素grid[i][j]是否为0。
class Solution {
public boolean checkXMatrix(int[][] grid) {
boolean flag=true;
int len=grid.length;
for(int i=0;i<len;i++){
if(grid[i][i]==0||grid[len-1-i][i]==0){//判断对角线
flag=false;
}
for(int j=0;j<len;j++){//判断其余元素
if(i!=j&&i+j!=len-1){
if(grid[i][j]!=0){
flag=false;
}
}
}
}
return flag;
}
}