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

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

本站已经建立2590天!

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