【测评中的编程题】矩阵旋转
要求把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 }
版权声明:本文为xiao-gan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。