【LeetCode】图像

来源:互联网 发布:淘宝隐藏导航栏代码 编辑:程序博客网 时间:2024/06/08 03:58

48. Rotate Image

题目:顺时针90度旋转一个图

思路:一圈一圈转,每四个一起转换

public class Solution {    public void rotate(int[][] matrix) {        int i = 2;        if(matrix.length%2 == 1) i = 3;        for(; i <= matrix.length; i+=2){            int n = (matrix.length-i)/2;            for(int j = 0; j < i-1; j++){                int temp = matrix[n][n+j];                matrix[n][n+j] = matrix[n+i-1-j][n];                matrix[n+i-1-j][n] = matrix[n+i-1][n+i-1-j];                matrix[n+i-1][n+i-1-j] = matrix[n+j][n+i-1];                matrix[n+j][n+i-1] = temp;            }        }    }}

其实就是先进行一次以对角线为轴的对称变换,再进行一次以中心线为轴的对称变换,这样思路更加清晰

public class Solution {    public void rotate(int[][] matrix) {        for(int i = 0; i<matrix.length; i++){            for(int j = i; j<matrix[0].length; j++){                int temp = 0;                temp = matrix[i][j];                matrix[i][j] = matrix[j][i];                matrix[j][i] = temp;            }        }        for(int i =0 ; i<matrix.length; i++){            for(int j = 0; j<matrix.length/2; j++){                int temp = 0;                temp = matrix[i][j];                matrix[i][j] = matrix[i][matrix.length-1-j];                matrix[i][matrix.length-1-j] = temp;            }        }    }}


原创粉丝点击