1572. Matrix Diagonal Sum
仅供自己学习
思路:
直接通过下标的关系获得对角线元素计算,左上到右下的关系为matrix[ i ][ i ],右上到左下为matrix[ i ][row-i-1],那么直接从i计数到row,同时加上上左上到右下与右上到左下的元素,最后判断row为奇数还是偶数,如果是奇数,那么就要把中心的元素减掉,因为重复加了。
代码:
1 class Solution { 2 public: 3 int diagonalSum(vector<vector<int>>& mat) { 4 int row=mat.size(); 5 int res=0; 6 for(int i=0;i<row;++i){ 7 res+=mat[i][i]+mat[i][row-i-1]; 8 } 9 if(row%2){ 10 res-=mat[row/2][row/2]; 11 } 12 return res; 13 } 14 };