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

本站现有博文332篇,共被浏览876897

本站已经建立2584天!

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