📜  将矩阵旋转 180 度的 C++ 程序(1)

📅  最后修改于: 2023-12-03 15:25:21.233000             🧑  作者: Mango

将矩阵旋转 180 度的 C++ 程序

背景

在矩阵运算中,有时需要将矩阵沿中心轴进行旋转,使得矩阵中的元素倒置。这个过程就称为将矩阵旋转 180 度,也可以称为矩阵的翻转。

实现方式

矩阵旋转 180 度的实现方式比较简单,只需要对于矩阵的每一行,将该行元素翻转即可。这里的翻转可以通过双指针法实现,也可以通过 STL 的 reverse 函数来实现。

代码

双指针实现:

void rotate(vector<vector<int>>& matrix) {
    int n = matrix.size();
    for (int i = 0; i < n; ++i) {
        int p = 0, q = n - 1;
        while (p < q) {
            swap(matrix[i][p], matrix[i][q]);
            p++;
            q--;
        }
    }
}

STL 实现:

void rotate(vector<vector<int>>& matrix) {
    int n = matrix.size();
    for (int i = 0; i < n; ++i) {
        reverse(matrix[i].begin(), matrix[i].end());
    }
}

以上是两种实现方式,二者都具有同样的时间和空间复杂度,只是实现方式不同。

总结

将矩阵旋转 180 度是矩阵操作中非常基础的部分,理解了该操作的实现方式,对于其他矩阵操作的理解和实现也是非常有帮助的。