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

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

本站已经建立2505天!

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