LeetCode题解:2319. 判断矩阵是否是一个 X 矩阵,JavaScript,详细注释

原题链接:
https://leetcode.cn/problems/check-if-matrix-is-x-matrix/

理解题意:

  1. 列出示例1的索引如下:

    00 01 02 03
    10 11 12 13
    20 21 22 23
    30 31 32 33

  2. 列出示例2的索引如下:

    00 01 02
    10 11 12
    20 21 22

  3. 可以看出X内的索引满足i === j或者i + j === n - 1,可以以此判断当前坐标是否在X内

解题思路:

  1. 遍历grid中每一个元素
  2. 判断当前元素的索引i和j是否在X内
  3. 再判断当前元素的值是否满足题目要求
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
};
相关推荐
程序员大阳6 小时前
副队长JavaScript教程(49)-主动抛出异常与错误类型
javascript·异常处理·error·throw·错误类型
hhhjhl6 小时前
Protobuf.js 跨端三方库仓颉适配全流程
javascript·网络·udp
一去不复返的通信er8 小时前
贪心算法-合并区间(LeetCode 56)
算法·leetcode·贪心算法
Flynt9 小时前
我把热榜那篇"禁用 axios"逐条实测了一遍:结论大体对,坑在它没讲的地方
前端·javascript·axios
slongzhang_10 小时前
linux 递归删除源码文件|递归删除目录下 *.js,但排除 *.min.js
linux·开发语言·javascript
INGNIGHT13 小时前
91 · 最小调整代价(序列dp)
数据结构·算法·leetcode
liyi_hz200813 小时前
O2OA(翱途) V10.1 即将发布|功能再升级,安全再加固,协同更高效!
java·javascript·windows·开源软件
学习论之费曼学习法14 小时前
无人值守AI内容矩阵实战(8):标题 A/B 实验的 6 个工程实现细节,隔日对比与自动判胜
人工智能·python·算法·矩阵·自动化·a/b测试·内容矩阵
志尊宝14 小时前
AI原生前端开发(029):AI辅助的文档自动生成
javascript·人工智能·ai-native
一个游离的指针14 小时前
ES6新特性:let、const、块级作用域
开发语言·javascript·es6