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. 判断当前元素的索引ij是否在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
};
相关推荐
岭南灯火几秒前
前端通用交互式几何编辑器的设计法则 1 - 入口的对象及其成员
前端·javascript·架构
满栀58526 分钟前
Vue.js 接口封装最佳实践:从基础到高级
前端·javascript·vue.js
kyriewen1 小时前
我踩了三次同一个坑才明白:React里"改了数据却不重新渲染"的真正原因
前端·javascript·react.js
java1234_小锋2 小时前
Vue3专题 - 事件处理
javascript·vue.js
A24207349302 小时前
React中请求拦截与响应拦截的统一处理方案
前端·javascript·react.js
zyplayer-doc3 小时前
zyplayer-doc企业知识库能做什么:从文档创建、权限管理到AI问答的完整能力
大数据·javascript·数据库·人工智能·pdf·word
烬羽3 小时前
《受控 vs 非受控:你以为用对了 useState,直到你写了那个表单》
javascript·react.js·前端框架
嘟嘟07174 小时前
React 受控组件与非受控组件:表单数据到底归谁管?
前端·javascript·react.js
嘟嘟07174 小时前
React 表单管理进阶:从单字段到带校验的完整登录表单
前端·javascript·react.js
做前端的娜娜子4 小时前
什么是浅拷贝(Shallow Copy)和深拷贝(Deep Copy)?如何手动实现一个深拷贝函数
javascript·面试·掘金·金石计划