Problem:给定一个n*n的二维图片,将这个二维图片按照顺时针旋转90°
 
求解过程:
 
 
求解过程如下所示:
 
LeetCode 48 Rotate Image(2D图像旋转问题)
 
首先对矩阵进行按照对角线进行交换操作
 
之后将矩阵前n/2列与后n/2列进行两两交换操作 (0<—>n-1     1<—>n-2    2<—>n-3) 
 
参考代码:
package leetcode_50;


/***
 * 
 * @author pengfei_zheng
 * 实现二维图片顺时针旋转90度
 */
public class Solution48 {
    public static void rotate(int[][] matrix) {
        int len = matrix.length;
        for(int i = 0; i < len; i++){
            for(int j = i+1; j < len; j++){
                swap(matrix,i,j,j,i);
            }
        }
        for(int i = 0 ; i < len ; i++){
            for(int j = 0 ; j < len / 2; j++){
                swap(matrix,i,j,i,len-1-j);
            }
        }
    }
    
    private static void swap(int[][] matrix, int i1,int j1, int i2,int j2) {
        int temp = matrix[i1][j1];
        matrix[i1][j1]=matrix[i2][j2];
        matrix[i2][j2]=temp;
    }

    public static void main(String[]args){
        int [][]matrix={{1,2,3},{4,5,6},{7,8,9}};
        rotate(matrix);
        int len = matrix.length;
        for(int i = 0 ; i < len; i++){
            for(int j = 0 ; j < len; j++){
                System.out.print(matrix[i][j]);
            }
            System.out.println();
        }
    }
}

 

 

相关文章:

  • 2022-01-31
  • 2022-01-05
  • 2021-09-27
  • 2022-01-01
  • 2021-11-19
  • 2021-10-30
  • 2022-02-16
  • 2021-06-30
猜你喜欢
  • 2022-01-06
  • 2021-11-26
  • 2021-12-23
  • 2021-11-19
  • 2022-01-04
  • 2021-12-08
  • 2021-11-23
相关资源
相似解决方案