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

本站现有博文324篇,共被浏览822667

本站已经建立2528天!

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