要求在O(1)的空间复杂度进行
要旋转多少层呢?
1 2
3 4
这个旋转一层
1 2 3
4 5 6
7 8 9
也是一层,因为5不用旋转
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
旋转两层
所以需要旋转的层数是n/2
每层需要旋转4条边,我们按这种方式转:左→顶,底→左,右→底,顶→右,对于每一个要进行旋转的边,先旋转倒数第一个数,比如要将第一列旋转到最顶,那么先把a[n-1][0]转到a[0][0],在把a[n-2][0]转到a[0][1]…………
答案来自网上: