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

本站现有博文337篇,共被浏览962524次

本站已经建立2674天!

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