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

本站现有博文321篇,共被浏览773186

本站已经建立2462天!

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