【测评中的编程题】矩阵旋转

要求把n*n的矩阵顺时针旋转90°

空间复杂度为O(n)

 

思路:

1. 每次找4个元素,确定通用坐标

2. 3次交换操作就可以旋转这4个元素

3. 逐层缩小遍历范围

 1     int low = 1, high = n;
 2     while(low<high)
 3     {
 4         for (int i = low;i < high;i++)
 5         {
 6             swap(arr[low][i], arr[i][high]);
 7             swap(arr[low][i], arr[n-i+1][low]);
 8             swap(arr[n-i+1][low], arr[high][n-i+1]);
 9         }
10         low++;
11         high--;
12     }

 

posted @ 2018-03-20 18:05  AWC小干  阅读(163)  评论(0编辑  收藏  举报