Java解決矩陣對角線元素的和問題
01 題目
給你一個正方形矩陣 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 == mat.length == mat[i].length
1 <= n <= 100
1 <= mat[i][j] <= 100
02 知識點
- 二維數組
03 我的題解
public class shuzu04 {public static void main(String[] args) {int[][] mat=new int[][] {{1,2,3},{4,5,6},{7,8,9}};System.out.println(diagonalSum(mat));}
public static int diagonalSum(int[][] mat) {int m=mat[0].length;int count=0;for (int i = 0; i < m; i++) {count+=mat[i][i];count+=mat[i][m-1-i];}if (m%2==1) {int n=(m-1)/2;count-=mat[n][n];}return count;}
}