C++程序 高效计算矩阵对角线之和
给定一个二维方阵,找出主对角线和次对角线元素的总和。例如,考虑以下 4×4 的输入矩阵。
主对角线是由元素 A00、A11、A22、A33 组成。
1. 主对角线的条件:行列条件为行 = 列。
2. 次对角线由元素 A03、A12、A21、A30 组成。
2. 次对角线的条件:行列条件为行 = 行数 – 列数 – 1。
例如:
输入:
4
1 2 3 4
4 3 2 1
7 8 9 6
6 5 4 3
输出:
主对角线:16
次对角线:20
输入:
3
1 1 1
1 1 1
1 1 1
输出:
主对角线:3
次对角线:3
方法 1(暴力法):
在此方法中,我们使用两个循环,即列循环和行循环,在内部循环中检查上述条件:
输出:
时间复杂度 : O(NN),因为我们使用嵌套循环遍历 NN 次。
空间复杂度 : O(1),因为我们不使用任何额外空间。
方法 2(高效方法):
在此方法中,我们使用一个循环,即一个循环用于计算主对角线和次对角线之和:
输出:
时间复杂度 : O(N),因为我们使用一个循环遍历 N 次。
辅助空间 : O(1),因为我们没有使用任何额外的空间。