「每日LeetCode」2021年4月29日

本文最后更新于:2023年3月19日 晚上

Lt1832. 判断句子是否为全字母句

1572. 矩阵对角线元素的和

给你一个正方形矩阵 mat,请你返回矩阵对角线元素的和。
请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。
示例   1:

1
2
3
4
5
6
输入:mat = [[1,2,3],
[4,5,6],
[7,8,9]]
输出:25
解释:对角线的和为:1 + 5 + 9 + 3 + 7 = 25
请注意,元素 mat[1][1] = 5 只会被计算一次。

示例   2:

1
2
3
4
5
输入:mat = [[1,1,1,1],
[1,1,1,1],
[1,1,1,1],
[1,1,1,1]]
输出:8

示例 3:

1
2
输入:mat = [[5]]
输出:5

提示:

  • n == mat.length == mat[i].length
  • 1 <= n <= 100
  • 1 <= mat[i][j] <= 100

思路

用一个数组记录出现的情况,遍历句子得到每个字符对应的 asc 码,减去 97 以后把对应数组下标设为 0。遍历完后,如果数组内都为 0,说明每一个英文字母都出现过,返回 true。

解答

1
2
3
4
5
6
7
8
9
10
11
12
/**
* @param {number[][]} mat
* @return {number}
*/
var diagonalSum = function (mat) {
let res = 0;
for (let row = 0; row < mat.length; row++) {
if (row === Math.abs(mat.length - row - 1)) res += mat[row][row];
else res += mat[row][row] + mat[row][Math.abs(mat.length - row - 1)];
}
return res;
};