Leetcode_12 天编程能力入门_day7

两个跟矩阵相关的简单题。

1572. Matrix Diagonal Sum

Analysis

返回对角线元素之和即可。

Code

1
2
3
4
5
6
7
8
9
10
11
class Solution {
public:
int diagonalSum(vector<vector<int>>& mat) {
int n = mat.size(), sum = 0;
for(int i = 0, j = n - 1; i < n && j >= 0; i++, j--) {
sum += mat[i][i];
sum += mat[i][j];
}
return n % 2 ? sum - mat[n / 2][n / 2] : sum;
}
};

注意当 n 是奇数时,中间的元素会被计算 2 次,所以结果要减去。嗯,这样写可能不太美观?改一下:

1
2
3
4
5
6
7
8
9
10
class Solution {
public:
int diagonalSum(vector<vector<int>>& mat) {
int n = mat.size(), sum = 0;
for(int i = 0; i < n; i++) {
sum += mat[i][i] + mat[i][n - i - 1];
}
return sum - mat[n / 2][n / 2] * (n & 1);
}
};

566. Reshape the Matrix

这是做过的题,参考:Leetcode_14 天数据结构入门_day4

Summary

今天的 2 个题做的太轻松啦~


Buy me a coffee ? :)
0%