C++程序 检查矩阵是否对称
如果矩阵的转置与给定矩阵相同,则称该方阵为 对称矩阵 ,可以通过将行变为列,将列变为行来获得 对称矩阵 。
例如:
输入:1 2 3
2 1 4
3 4 3
输出:Yes
输入:3 5 8
3 4 7
8 5 3
输出:No
下面是一个简单的解法:
- 创建给定矩阵的转置矩阵。
- 检查转置矩阵和给定矩阵是否相同。
输出 :
时间复杂度:O(N × N)
辅助空间:O(N × N)
下面是一种更高效的解法来检查一个矩阵是否对称,而不创建转置矩阵。我们基本上需要比较mat[i][j] 和 mat[j][i]。
输出:
时间复杂度:O(N×N)
辅助空间:O(1)