C++程序 交换矩阵的对角线

C++程序 交换矩阵的对角线

给定一个n*n的方阵,你需要交换对角线上的元素。

示例:

输入:matrix[][] = {1, 2, 3,
4, 5, 6,
7, 8, 9}
输出:matrix[][] = {3, 2, 1,
4, 5, 6,
9, 8, 7}

输入:matrix[][] = {4, 2, 3, 1,
5, 7, 6, 8,
9, 11, 10, 12,
16, 14, 15, 13}
输出:matrix[][] = {1, 2, 3, 4,
5, 6, 7, 8,
9, 10, 11, 12,
11, 14, 15, 16}

解释: 交换方阵的对角线的思路很简单。从0到n-1迭代,对于每个迭代,你必须交换a[i][i]和a[i][n-i-1]。

C++程序 交换矩阵的对角线

// C++ program to interchange
// the diagonals of matrix
#include<bits/stdc++.h>
using namespace std;
 
#define N 3
 
// Function to interchange diagonals
void interchangeDiagonals(int array[][N])
{
    // swap elements of diagonal
    for (int i = 0; i < N; ++i)
    if (i != N / 2)
    swap(array[i][i], array[i][N - i - 1]);
 
    for (int i = 0; i < N; ++i)
    {
    for (int j = 0; j < N; ++j)
            cout<<" "<< array[i][j];
    cout<<endl;
    }
}
 
// Driver Code
int main()
{
    int array[N][N] = {4, 5, 6,
                    1, 2, 3,
                    7, 8, 9};
    interchangeDiagonals(array);
    return 0;
}
 
// This code is contributed by noob2000.```  

输出:

 6 5 4
 1 2 3
 9 8 7

时间复杂度: O(N*N),因为我们使用嵌套循环遍历矩阵。

辅助空间: O(1),因为我们不使用任何额外的空间。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例