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

本站现有博文316篇,共被浏览746591

本站已经建立2394天!

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