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

本站现有博文323篇,共被浏览795467

本站已经建立2493天!

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