美文网首页
48. Rotate Image 旋转图像

48. Rotate Image 旋转图像

作者: sarto | 来源:发表于2022-04-02 10:09 被阅读0次

题目

给定一个 nxn 的 2D 矩阵表示的图像,将这个矩阵顺时针旋转 90度。必须在矩阵内做本地替换,不要使用额外的 2D 矩阵存储。

解析

矩阵顺时针旋转90度,即 将矩阵先 上下翻转,然后沿 [0n,n0] 斜轴做翻转即可。

伪代码

# 横翻转
i=0, j=row-1
for i<j
  for c < col
    swap(matrix[i,c], matrix[j,c])

# 斜翻转
i = 0, j=0
for i< row
  for j=i+1, j< col
    swap(matrix[i,j], matrix[j,i])

代码

func rotate(matrix [][]int)  {
    for i,j:= 0,len(matrix)-1; i<j; i,j=i+1,j-1 {
        for c := 0; c<len(matrix); c++ {
            matrix[i][c] = matrix[i][c] + matrix[j][c]
            matrix[j][c] = matrix[i][c] - matrix[j][c] 
            matrix[i][c] = matrix[i][c] - matrix[j][c]
        }
    }
    
    for i:=0; i<len(matrix); i++ {
        for j:=i+1; j<len(matrix); j++ {
            matrix[i][j] = matrix[i][j] + matrix[j][i]
            matrix[j][i] = matrix[i][j] - matrix[j][i]
            matrix[i][j] = matrix[i][j] - matrix[j][i]
        }
    }
}
image.png

相关文章

网友评论

      本文标题:48. Rotate Image 旋转图像

      本文链接:https://www.haomeiwen.com/subject/ddqtsrtx.html