EADST

C++矩阵旋转90度

题目:

请编写一个函数 rotateMatrix90,将一个 n x n 的二维矩阵顺时针旋转 90 度,并返回旋转后的矩阵。

要求: 1. 原矩阵可以在原地修改,不需要额外的矩阵。 2. 使用 O(1) 的额外空间。

输入示例:

vector< vector< int>> matrix = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

输出示例:

{
    {7, 4, 1},
    {8, 5, 2},
    {9, 6, 3}
}

提示: 1. 可以先对矩阵进行转置(行列互换),然后翻转每一行来实现旋转。 2. 该方法适用于 n x n 的矩阵。


解答示例代码:

#include < vector>
#include < algorithm>
#include < iostream>

using namespace std;

void rotateMatrix90(vector< vector< int>>& matrix) {
    int n = matrix.size();

    // 转置矩阵
    for (int i = 0; i < n; ++i) {
        for (int j = i + 1; j < n; ++j) {
            swap(matrix[i][j], matrix[j][i]);
        }
    }

    // 每一行翻转
    for (int i = 0; i < n; ++i) {
        reverse(matrix[i].begin(), matrix[i].end());
    }
}

// 测试代码
int main() {
    vector< vector< int>> matrix = {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    };

    rotateMatrix90(matrix);

    // 输出结果
    for (const auto& row : matrix) {
        for (int num : row) {
            cout << num << " ";
        }
        cout << endl;
    }

    return 0;
}

代码解释:

  1. 转置矩阵:对矩阵进行转置操作,将行和列交换。
  2. 翻转每一行:使用 reverse 函数翻转每一行,从而实现 90 度旋转。
相关标签
About Me
XD
Goals determine what you are going to be.
Category
标签云
Paper Bin Markdown Freesound ResNet-50 LaTeX BF16 News tar Crawler Git Review Use Claude Mixtral 图形思考法 Nginx FP64 搞笑 飞书 BTC FlashAttention TTS Logo git MD5 CSV 继承 音频 FP16 Animate Template SVR 强化学习 Zip Ptyhon Random Website tqdm 阿里云 Linux Plotly CUDA OCR OpenAI UNIX PIP ChatGPT Distillation Input XGBoost GPT4 Shortcut 腾讯云 WebCrawler Numpy Streamlit Diagram PyCharm Math RGB Password Video C++ HaggingFace Michelin SQL Quantize ONNX Domain 财报 XML Color Windows API Dataset Cloudreve RAR Clash 关于博主 scipy Breakpoint CEIR 递归学习法 git-lfs VPN Heatmap CLAP IndexTTS2 PDB AI Jupyter Data Bert Conda Firewall Food TSV OpenCV 域名 Qwen2.5 Disk 多线程 Proxy transformers Card Algorithm uWSGI LLM Search Attention Magnet Knowledge 算法题 SQLite CAM Pickle Baidu 版权 JSON Django hf Bipartite FP32 Augmentation llama.cpp CC Google Paddle LLAMA 报税 TensorRT v0.dev PDF FastAPI WAN SPIE VGG-16 DeepStream ModelScope Plate GGML torchinfo Hilton Bitcoin CTC CV Pillow InvalidArgumentError Anaconda 多进程 DeepSeek Ubuntu Safetensors SAM 净利润 NameSilo 公式 v2ray Tracking Jetson Gemma Llama TensorFlow Tensor Python QWEN 签证 Tiktoken printf GoogLeNet YOLO FP8 logger Pandas Github diffusers HuggingFace Base64 Transformers Datetime LeetCode PyTorch Quantization Hungarian Web EXCEL Image2Text VSCode Excel Hotel 证件照 COCO LoRA Qwen2 uwsgi Land BeautifulSoup Translation Permission Miniforge Statistics NLP Interview Qwen Docker Vim GPTQ Sklearn NLTK 第一性原理 顶会 Agent UI GIT Pytorch Vmess mmap
站点统计

本站现有博文320篇,共被浏览755725

本站已经建立2418天!

热门文章
文章归档
回到顶部