文章目录
  1. 1. Rotate Image

Rotate Image


给定一个n*n的二维数组,现在需要将这个二维数组顺时针旋转90度。

如果不直接在二维数组上进行,也就是说给定额外的空间来进行操作的话,这道题目并不复杂。

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

旋转后,得到

13 9 5 1

14 10 6 2

15 11 7 3

16 12 8 4

也就是说每次都先去读取原来数组的列,然后塞进新的数组就是了

但题目中要求如果不使用额外的空间这道题目该如何做?

这里有个方法比较巧妙,先对原数组进行中间对折交换:

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

就变成了

13 14 15 16

9 10 11 12

5 6 7 8

1 2 3 4

然后再对角线交换就得到了顺时针旋转后的数组。

文章目录
  1. 1. Rotate Image