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

本站现有博文333篇,共被浏览926966

本站已经建立2634天!

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