zoukankan      html  css  js  c++  java
  • LeetCode 48 Rotate Image(2D图像旋转问题)

     
    Problem:给定一个n*n的二维图片,将这个二维图片按照顺时针旋转90°
     
    求解过程:
     
     
    求解过程如下所示:
     
     
    首先对矩阵进行按照对角线进行交换操作
     
    之后将矩阵前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();
            }
        }
    }
     
  • 相关阅读:
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    动手动脑2
    动手动脑3
    每日日报
    每周总结
    Java学习
  • 原文地址:https://www.cnblogs.com/zpfbuaa/p/6542173.html
Copyright © 2011-2022 走看看