Rotate Image

Posted wenqinchao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rotate Image相关的知识,希望对你有一定的参考价值。

问题:给定一个N x N的数组,将数组元素顺时针旋转90度,并且要求不使用另外的数组

示例:

输入:

matrix = 
[
  [1,2,3],
  [4,5,6],
  [7,8,9]
],

 matrix变为:

[
  [7,4,1],
  [8,5,2],
  [9,6,3]
]

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

 matrix变为:

[
  [15,13, 2, 5],
  [14, 3, 4, 1],
  [12, 6, 8, 9],
  [16, 7,10,11]
]


解决思路:

  # 根据n的大小,确定需要旋转多少个轮次
  # 每个轮次,将所有会旋转的点按照旋转的路径(菱形)划分为多个组,每个组中的元素个数为n
  # 先旋转端点,再旋转其他组,直到下一个端点前停下

Python代码:

class Solution(object):
    def rotate(self, matrix):
        """
        :type matrix: List[List[int]]
        :rtype: None Do not return anything, modify matrix in-place instead.
        """
        n = len(matrix)
        if not n:
            return
        num = n // 2
        for i in range(num):
            j = i
            bound = n - i - 1
            while j < bound:
                last = n- j -1
                matrix[j][i],matrix[i][last],matrix[last][bound],matrix[bound][j] = matrix[bound][j],matrix[j][i],matrix[i][last],matrix[last][bound] 
                j += 1

 

以上是关于Rotate Image的主要内容,如果未能解决你的问题,请参考以下文章

48.Rotate Image

[leetcode] 48. Rotate Image

[leetcode]48. Rotate Image

LeetCode 48. Rotate Image My Submissions Question (矩阵旋转)

R语言使用magick包的image_rotate函数image_flip函数image_flop函数对图像进行缩放旋转镜像翻转(Rotate or mirror the image)

48. Rotate Image