image.png

思路1 转置加翻转

image.png

  1. public void rotate(int[][] matrix) {
  2. int n = matrix.length;
  3. //转置
  4. for(int i=0;i<n;i++){
  5. for(int j=i;j<n;j++){
  6. int tmp = matrix[i][j];
  7. matrix[i][j]=matrix[j][i];
  8. matrix[j][i]=tmp;
  9. }
  10. }
  11. //对每一行的反转
  12. for(int i=0;i<n;i++){
  13. for(int j=0;j<n/2;j++){
  14. int tmp = matrix[i][j];
  15. matrix[i][j]=matrix[i][n-j-1];
  16. matrix[i][n-j-1]=tmp;
  17. }
  18. }
  19. }