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

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

本站已经建立2493天!

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