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

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

本站已经建立2528天!

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