网站百度推广怎么做的,成都展示型网页设计公司,腾讯云网站建设视频教程,如何判断网站有cdn加速文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】
矩阵
二【题目难度】
简单
三【题目编号】
1572.矩阵对角线元素的和
四【题目描述】
给你一… 文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】
矩阵
二【题目难度】
简单
三【题目编号】
1572.矩阵对角线元素的和
四【题目描述】
给你一个正方形矩阵 mat请你返回矩阵对角线元素的和。请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。
五【题目示例】 示例 1 输入mat [[1,2,3], [4,5,6], [7,8,9]] 输出25 解释对角线的和为1 5 9 3 7 25。请注意元素 mat[1][1] 5 只会被计算一次。 示例 2 输入mat [[1,1,1,1], [1,1,1,1], [1,1,1,1], [1,1,1,1]]输出8 示例 3 输入mat [[5]]输出5
六【题目提示】 n m a t . l e n g t h m a t [ i ] . l e n g t h n mat.length mat[i].length nmat.lengthmat[i].length 1 n 100 1 n 100 1n100 1 m a t [ i ] [ j ] 100 1 mat[i][j] 100 1mat[i][j]100
七【解题思路】
定义i遍历二维数组的行数j遍历二维数组的列数如果ij说明是主对角线的元素如果ijn-1说明是副对角线的元素采用||进行判断这样就不会将主对角线和副对角线的元素多加一次因为只遍历了一次数组然后将其求和最后返回结果即可
八【时间频度】
时间复杂度 O ( n 2 ) O(n^2) O(n2) n n n为传入的正方形数组的长度空间复杂度 O ( 1 ) O(1) O(1)
九【代码实现】
Java语言版
class Solution {public int diagonalSum(int[][] mat) {int n mat.length;int res 0;for(int i 0;i n;i){for(int j 0;j n;j){if(i j || i j n - 1){res mat[i][j];}}}return res;}
}C语言版
int diagonalSum(int** mat, int matSize, int* matColSize)
{int n matSize;int res 0;for(int i 0;i n;i){for(int j 0;j n;j){if(i j || i j n - 1){res mat[i][j];}}}return res;
}Python语言版
class Solution:def diagonalSum(self, mat: List[List[int]]) - int:n len(mat)res 0for i in range(0,n):for j in range(0,n):if i j or i j n - 1:res mat[i][j]return resC语言版
class Solution {
public:int diagonalSum(vectorvectorint mat) {int n mat.size();int res 0;for(int i 0;i n;i){for(int j 0;j n;j){if(i j || i j n - 1){res mat[i][j];}}}return res;}
};十【提交结果】 Java语言版 C语言版 Python语言版 C语言版