📅  最后修改于: 2023-12-03 15:25:21.233000             🧑  作者: Mango
在矩阵运算中,有时需要将矩阵沿中心轴进行旋转,使得矩阵中的元素倒置。这个过程就称为将矩阵旋转 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 度是矩阵操作中非常基础的部分,理解了该操作的实现方式,对于其他矩阵操作的理解和实现也是非常有帮助的。