原题链接:
https://leetcode.cn/problems/check-if-matrix-is-x-matrix/
理解题意:
-
列出示例1的索引如下:
00 01 02 03
10 11 12 13
20 21 22 23
30 31 32 33 -
列出示例2的索引如下:
00 01 02
10 11 12
20 21 22 -
可以看出
X
内的索引满足i === j
或者i + j === n - 1
,可以以此判断当前坐标是否在X
内
解题思路:
- 遍历
grid
中每一个元素 - 判断当前元素的索引
i
和j
是否在X
内 - 再判断当前元素的值是否满足题目要求
javascript
/**
* @param {number[][]} grid
* @return {boolean}
*/
var checkXMatrix = function(grid) {
// 矩阵长度n
const n = grid.length
// 矩阵最后一位索引last
const last = n - 1
// 遍历每个位置
for (let i = 0; i < n; i++) {
for (let j = 0; j < n; j++) {
// 如果当前位置为X中的元素
if (i === j || (i + j === last)) {
// 如果X中的元素值为0,不符合要求
if (grid[i][j] === 0) {
return false
}
} else {
// 如果X以外的元素值不为0,不符合要求
if (grid[i][j] !== 0) {
return false
}
}
}
}
// 正常退出循环,表示符合条件
return true
};