📜  跨对角线矩阵镜像的Javascript程序

📅  最后修改于: 2022-05-13 01:57:23.077000             🧑  作者: Mango

跨对角线矩阵镜像的Javascript程序

给定一个 N x N 阶的二维数组,打印一个矩阵,它是给定树在对角线上的镜像。我们需要以某种方式打印结果:将对角线上方的三角形的值与其下方的三角形的值交换,就像镜像交换一样。打印以矩阵布局获得的二维数组。

例子:

Input : int mat[][] = {{1 2 4 }
                       {5 9 0}
                       { 3 1 7}}
Output :  1 5 3 
          2 9 1
          4 0 7

Input : mat[][] = {{1  2  3  4 }
                   {5  6  7  8 }
                   {9  10 11 12}
                   {13 14 15 16} }
Output : 1 5 9 13 
         2 6 10 14  
         3 7 11 15 
         4 8 12 16 

这个问题的一个简单解决方案涉及额外的空间。我们一一遍历所有右对角线(从右到左)。在对角线的遍历过程中,首先将所有元素压入栈中,然后再次遍历,将对角线的每个元素替换为栈元素。

下面是上述思想的实现。

Javascript


Javascript


输出:

1 5 9 13 
2 6 10 14 
3 7 11 15 
4 8 12 16

时间复杂度: O(n*n)

这个问题的一个有效解决方案是,如果我们观察一个输出矩阵,那么我们注意到我们只需要交换 (mat[i][j] 到 mat[j][i])。
下面是上述思想的实现。

Javascript


输出:

1 5 9 13 
2 6 10 14 
3 7 11 15 
4 8 12 16 

时间复杂度: O(n*n)

有关详细信息,请参阅关于矩阵对角线镜像的完整文章!