题目描述:
给定一个N×N的矩阵matrix 把这个矩阵调整成顺时针转动90°后的形式,例如
要求:额外空间复杂度O(1)
思路:以上述图为例,将13赋值给1位置,将16赋值给13位置,将4赋值给16位置,再将1赋值给4位置,就是上图中用黑色圈标记的位置,然后重复上述过程将红色圈位置交换,在将粉色位置交换,这样就完成了最外层的调换,里层重复外层的交换,注意只能正方形才能旋转,如果矩阵为矩形,旋转以后会超出矩阵的容纳范围
public class RotatMatrix {
public static void rotateMatrix(int[][] matrix) {
int aH = 0;
int aL = 0;
int bH = matrix.length - 1;
int bL = matrix[0].length - 1;
while(aH < bH) {
rotateEdge