Rotate-image

题目描述


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?

public class Solution {
    public void rotate(int[][] matrix) {
        if(matrix == null && matrix.length == 0 && matrix[0].length == 0)
            return ;
        int top = 0;
        int bottom = matrix.length - 1;
        int left = 0;
        int right = matrix.length - 1;
        int n = matrix.length;
        while(n > 1)
        {
            for(int i = 0 ; i < n -1 ; i++)
            {
                int temp = matrix[top][left+i];
                matrix[top][left+i] = matrix[bottom-i][left];
                matrix[bottom-i][left] = matrix[bottom][right-i];
                matrix[bottom][right-i] = matrix[top+i][right];
                matrix[top+i][right] = temp;
            }
            top++;
            bottom--;
            left++;
            right--;
            n-=2;
        }
    }
}

confusing!
links: ways

猜你喜欢

转载自blog.csdn.net/neo233/article/details/80765920
今日推荐