python-leetcode-1572. 矩阵对角线元素的和

部署运行你感兴趣的模型镜像

1572. 矩阵对角线元素的和 - 力扣(LeetCode)

想要计算一个正方形矩阵中两个对角线的元素之和:

  1. 主对角线:从左上角到右下角的对角线。

  2. 副对角线:从右上角到左下角的对角线,但不包括主对角线的交点。

我们可以通过遍历矩阵的每一行来提取这些对角线元素的值。让我们具体实现:

解题思路:

  1. 主对角线的元素是 mat[i][i],其中 i 是行和列的索引。

  2. 副对角线的元素是 mat[i][n-i-1],其中 n 是矩阵的大小,i 是行索引。

步骤:

  • 初始化两个变量,分别用来保存主对角线和副对角线的元素和。

  • 遍历矩阵中的每一行,分别加上主对角线和副对角线的元素。如果是主对角线和副对角线的交点元素(即中间的元素,对于奇数大小的矩阵),需要去除一次。

Python 代码实现:

def diagonalSum(mat):
    n = len(mat)
    total = 0
    
    for i in range(n):
        total += mat[i][i]  # 主对角线元素
        total += mat[i][n-i-1]  # 副对角线元素
    
    # 如果矩阵的大小是奇数,去掉重复计算的中心元素
    if n % 2 == 1:
        total -= mat[n//2][n//2]
    
    return total

解释:

  1. mat[i][i] 是主对角线的元素,mat[i][n-i-1] 是副对角线的元素。

  2. 如果矩阵的大小 n 是奇数,中心的元素 mat[n//2][n//2] 会被同时算作主对角线和副对角线元素,因此要减去一次。

这样就能得到矩阵对角线元素的和了。

你可以调用这个函数来计算任意正方形矩阵的对角线元素之和。

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值