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

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

本站已经建立2702天!

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