搞个矩阵,翻转一下就行。题目说不占额外内存,但是我这样做了,内存也是前100%.估计是JAVA启动的时候就加载了一些东西。
看题解也都是n^2复杂度,就这样了吧。
public static void rotate(int[][] matrix) { int rows = matrix.length; int cols = matrix[0].length; int[][] oldM = new int[rows][cols]; for(int i=0;i<rows;i++){ for(int j=0;j<cols;j++){ oldM[i][j]=matrix[i][j]; } } for(int i=0;i<rows;i++){ for(int j=0;j<cols;j++){ matrix[j][cols-i-1]=oldM[i][j]; } } for(int i=0;i<rows;i++){ for(int j=0;j<cols;j++){ System.out.print(matrix[i][j]+" "); } System.out.println(" "); } }