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

本站现有博文332篇,共被浏览876870

本站已经建立2584天!

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