題目
1572. 矩陣對(duì)角線元素的和
難度: 簡(jiǎn)單
描述:
給你一個(gè)正方形矩陣 mat,請(qǐng)你返回矩陣對(duì)角線元素的和。
請(qǐng)你返回在矩陣主對(duì)角線上的元素和副對(duì)角線上且不在主對(duì)角線上元素的和。
返回合并后的二叉樹(shù)。
注意: 合并過(guò)程必須從兩個(gè)樹(shù)的根節(jié)點(diǎn)開(kāi)始。
示例 1:
輸入:mat = [[1,2,3],
[4,5,6],
[7,8,9]]
輸出:25
解釋:對(duì)角線的和為:1 + 5 + 9 + 3 + 7 = 25
請(qǐng)注意,元素 mat[1][1] = 5 只會(huì)被計(jì)算一次。
示例 2:
輸入:mat = [[1,1,1,1],
[1,1,1,1],
[1,1,1,1],
[1,1,1,1]]
輸出:8
示例3:
輸入:mat = [[5]]
輸出:5
提示:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-656572.html
- -n == mat.length == mat[i].length
- 1 <= n <= 100
- 1 <= mat[i][j] <= 100
思路
時(shí)間復(fù)雜度分析:根據(jù)分析m和n的范圍,可以使用暴力法兩層for循環(huán)來(lái)解題 時(shí)間復(fù)雜度為O(n^2)
同時(shí)我們觀察分析,可以求出對(duì)角線的和,因此時(shí)間復(fù)雜度可以降低到O(n)
空間復(fù)雜度: O(1)
解法思路:使用一層for循環(huán)來(lái)求出對(duì)角線的和,同時(shí)根據(jù)階數(shù)的奇偶性,奇數(shù)的話需要減一次中間值,偶數(shù)的話不用文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-656572.html
代碼
class Solution {
public int diagonalSum(int[][] mat) {
int m = mat.length;
int n = mat[0].length;
int sum =0;
for(int i = 0;i<m;i++){
sum += mat[i][i];
}
for(int j =0;j<n;j++){
sum += mat[j][n-j-1];
if(n % 2 == 1){
sum -= mat[n/2][m/2];
}
return sum;
}
}
到了這里,關(guān)于【力扣每日一題】1572. 矩陣對(duì)角線元素的和 & 8.11打卡的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!