Loading

c++矩阵旋转问题

问题

有一个MxN的矩阵,设计函数将其顺时针旋转90度。
打印示例

Original matrix:
1 2 3 
4 5 6 
7 8 9 
Rotated matrix (90 degrees clockwise):
7 4 1 
8 5 2 
9 6 3 

代码

#include <iostream>
#include <vector>

using namespace std;

void rotateMatrix90Clockwise(const vector<vector<int>>& matrix, vector<vector<int>>& result) {
    int M = matrix.size();
    int N = matrix[0].size();

    // Resize the result matrix to be N x M
    result.resize(N, vector<int>(M, 0));

    for (int i = 0; i < M; ++i) {
        for (int j = 0; j < N; ++j) {
            // Place element matrix[i][j] into the correct position in result
            result[j][M - 1 - i] = matrix[i][j];
        }
    }
}

void printMatrix(const vector<vector<int>>& matrix) {
    for (const auto& row : matrix) {
        for (int val : row) {
            cout << val << ' ';
        }
        cout << endl;
    }
}

int main() {
    // Example usage
    vector<vector<int>> matrix = {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    };

    vector<vector<int>> rotatedMatrix;
    rotateMatrix90Clockwise(matrix, rotatedMatrix);

    cout << "Original matrix:" << endl;
    printMatrix(matrix);

    cout << "Rotated matrix (90 degrees clockwise):" << endl;
    printMatrix(rotatedMatrix);

    return 0;
}
posted @ 2024-08-22 20:52  azureology  阅读(57)  评论(0编辑  收藏  举报