网站策划书3000,盐城做网站的公司地址,上海网站建设思创,济南做网站优化公司解题 思路 1:
循环,找到主对角线的下标和副对角线的下标,如果矩阵长或宽为奇数的时候,需要减去中间公共的那一个值,中间公共的那个数的下标为mat[mat.size()/2][mat.size()/2]副对角线的下标为 mat [i][mat.size()-i-1] class Solution {
public:int diagonalSum(vectorve… 解题 思路 1:
循环,找到主对角线的下标和副对角线的下标,如果矩阵长或宽为奇数的时候,需要减去中间公共的那一个值,中间公共的那个数的下标为mat[mat.size()/2][mat.size()/2]副对角线的下标为 mat [i][mat.size()-i-1] class Solution {
public:int diagonalSum(vectorvectorint mat) {int res 0 ;for(int i 0 ;imat.size();i){//副对角线 列 行的大小 - 当前的行数 -1res mat[i][i] mat [i][mat.size()-i-1];}if(mat.size()%2 1){//若行列为奇数,则应该减去公共的那部分res - mat[mat.size()/2][mat.size()/2];}return res;}
}; 对于二维数组,矩阵的副对角线上元素的下标
对于一个二维数组矩阵副对角线上的元素可以通过以下方式计算出它们的下标 假设矩阵的大小为 n * n下标从 0 开始计数。 副对角线上的元素满足两个条件 行下标和列下标之和等于 n-1 行下标不等于列下标
int n mat.size(); // 矩阵的行数或列数
for (int i 0; i n; i) {for (int j 0; j n; j) {if (i j n - 1 i ! j) {// 当前元素是副对角线上的一个元素// 下标为 (i, j)}}
}