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

本站现有博文336篇,共被浏览945848

本站已经建立2656天!

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