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

本站现有博文338篇,共被浏览969371次

本站已经建立2681天!

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