topic048

package
v0.0.0-...-b071cee Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 9, 2023 License: GPL-3.0 Imports: 0 Imported by: 0

README

旋转图像

1. 题目描述

给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。

你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。

2. 示例

示例1 1

输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[[7,4,1],[8,5,2],[9,6,3]]

示例2 2

输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]
输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]

示例3

输入:matrix = [[1]]
输出:[[1]]

示例4

输入:matrix = [[1,2],[3,4]]
输出:[[3,1],[4,2]]

提示

  • matrix.length == n
  • matrix[i].length == n
  • 1 <= n <= 20
  • -1000 <= matrix[i][j] <= 1000

3. 解题

对于n*n矩阵 设某一个位置坐标为(x, y),则,旋转后其坐标为(n-y-1, x)

则可推断出:

  • 对于(i, j) -> (n-j-1, i)
  • 对于(n-j-1, i) -> (n-i-1, n-j-1)
  • 对于(n-i-1, n-j-1) -> (n-(n-j-1)-1, n-i-1) = (j, n-i-1)
  • 对于(j, n-i-1) -> (n-(n-i-1)-1, j) = (i, j)

则只需遍历左上角四分之一个矩阵,每次遍历执行上述四步操作,即可将矩阵旋转90度

如果是n*m矩阵

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL