LeetCode //C - 48. Rotate Image

48. Rotate Image

You are given an n x n 2D matri x representing an image, rotate the image by 90 degrees (clockwise).

You have to rotate the image in-place , which means you have to modify the input 2D matrix directly. DO NOT allocate another 2D matrix and do the rotation.

Example 1:

Input: matrix = \[1,2,3,4,5,6,7,8,9]
Output: \[7,4,1,8,5,2,9,6,3]

Example 2:

Input: matrix = \[5,1,9,11,2,4,8,10,13,3,6,7,15,14,12,16]
Output: \[15,13,2,5,14,3,4,1,12,6,8,9,16,7,10,11]

Constraints:

  • n == matrix.length == matrixi.length
  • 1 <= n <= 20
  • -1000 <= matrixij <= 1000

From: LeetCode

Link: 48. Rotate Image


Solution:

Ideas:

To rotate a matrix by 90 degrees clockwise in place, we can follow a two-step process:

  1. Transpose the Matrix: The transpose of a matrix is obtained by swapping rows and columns. This means

    matrixij will become matrixji.

  2. Reverse the Rows: Reverse each row of the transposed matrix.

Following these steps will give us the rotated matrix.

Code:
c 复制代码
void rotate(int** matrix, int matrixSize, int* matrixColSize) {
    // Transpose the matrix
    for (int i = 0; i < matrixSize; i++) {
        for (int j = i; j < matrixSize; j++) {
            int temp = matrix[i][j];
            matrix[i][j] = matrix[j][i];
            matrix[j][i] = temp;
        }
    }

    // Reverse each row
    for (int i = 0; i < matrixSize; i++) {
        for (int j = 0, k = matrixSize - 1; j < k; j++, k--) {
            int temp = matrix[i][j];
            matrix[i][j] = matrix[i][k];
            matrix[i][k] = temp;
        }
    }
}
相关推荐
春风解人意12 小时前
从零开始学习嵌入式P32----网络基础之TCP
c语言·网络·学习·tcp/ip
政企项目老覃14 小时前
大模型幻觉治理与自动评测:金融风控场景的落地实践
人工智能·算法·机器学习
是隼人14 小时前
buuctf-pwn inndy_echo(32位fmt)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
淡海水14 小时前
08-03-不可变-ImmutableDictionary-TKey-TValue-与ImmutableHashSet-T-持久化哈希树
数据结构·算法·c#·哈希算法·dictionary·immutable
hansang_IR14 小时前
【题解】[APIO2023] 赛博乐园 / cyberland
c++·算法·图论
洛阳纸贵15 小时前
MATLAB-matlab基础知识
学习·算法·matlab
落羽的落羽15 小时前
【AI】快速理解AI应用的相关名词概念
linux·c++·人工智能·python·计算机网络·算法
Nil20815 小时前
leetcode 17电话号码的字母组合
算法·leetcode·职场和发展
刃神太酷啦15 小时前
Redis 进阶核心:持久化 (RDB/AOF)、事务与主从复制全解析----《Hello Redis!》(5)
linux·c语言·数据库·c++·redis·缓存·bootstrap