力扣算法练习: 矩阵是否是一个 X 矩阵

算法练习

返回算法总目录


文章目录

  • 算法练习
  • 前言
  • 一、问题描述
  • 二、问题分析
  • 三、关键点总结
  • 四、代码实现及注释
    • 1. python
  • 总结


前言

如果对您有帮助, 请反手一个赞~

力扣算法练习: 矩阵是否是一个 X 矩阵
力扣题目连接: 2319. 判断矩阵是否是一个 X 矩阵


一、问题描述

给定矩阵grid(n*n), 判断其是否为X矩阵。
X矩阵:
1. 对角线元素不是0
2. 其他位置都是0

二、问题分析

  1. 需要遍历每一个位置
  2. 每个位置要判断是否符合要求

三、关键点总结

  1. 关键点在于哪些点是要判断为0, 哪些点要判断不能为0.
  2. 对角线位置的索引符合两种情况:
    • 横竖索引值相同
    • 横竖索引值相加为n-1

四、代码实现及注释

1. python

class Solution:
    def checkXMatrix(self, grid: List[List[int]]) -> bool:
        n = len(grid)
        for i in range(n):
            for j in range(n):
                # print(i, j)
                # print(grid[i][j])
                if i == j or ((i +j) == (n -1)):
                    if grid[i][j] == 0:
                        return False
                else:
                    if grid[i][j] != 0:
                        return False
        return True

总结

参考官方题解, 可以通过使用enumerate可以减少使用grid[i][j]取数的步骤

class Solution:
    def checkXMatrix(self, grid: List[List[int]]) -> bool:
        n = len(grid)
        for i, row in enumerate(grid):
            for j, x in enumerate(row):
                if i == j or (i + j) == (n - 1):
                    if x == 0:
                        return False
                elif x:
                    return False
        return True

作者:力扣官方题解
链接:https://leetcode.cn/problems/check-if-matrix-is-x-matrix/solutions/2079502/pan-duan-ju-zhen-shi-fou-shi-yi-ge-x-ju-aloq7/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

以上就是此次算法练习的全部内容, 感谢阅览, 求点赞~

你可能感兴趣的:(算法练习,算法,leetcode,矩阵)