原題鏈接:
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
內(nèi)的索引滿足i === j
或者i + j === n - 1
昵仅,可以以此判斷當(dāng)前坐標(biāo)是否在X
內(nèi)
解題思路:
- 遍歷
grid
中每一個元素 - 判斷當(dāng)前元素的索引
i
和j
是否在X
內(nèi) - 再判斷當(dāng)前元素的值是否滿足題目要求
/**
* @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++) {
// 如果當(dāng)前位置為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
}
}
}
}
// 正常退出循環(huán)摔笤,表示符合條件
return true
};