(java)Rotate Image

来源:互联网 发布:网络教育统考在哪里考 编辑:程序博客网 时间:2024/06/05 13:21

You are given an n x n 2D matrix representing an image.

Rotate the image by 90 degrees (clockwise).

Follow up:

Could you do this in-place?

思路:本题的题意就是把一个n*n的矩阵,顺时针转90度,先关于主对角线交换,再将列对称交换

比如 12345678910111213141516先关于对角线交换,变为

15913261014371115481216再将列对称交换,得到结果

13951141062151173161284代码如下(已通过leetcode)

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


0 0