Rotate Image

Problem: Rotate Image

To do in-place rotation, we simply calculate the relationship between indexes of exchanging elements.

Code in Python:

class Solution(object):
    def rotate(self, matrix):
        """
        :type matrix: List[List[int]]
        :rtype: void Do not return anything, modify matrix in-place instead.
        """
        n = len(matrix)
        for i in xrange(n/2):
            for j in xrange(i, n-i-1):
                temp = matrix[i][j]
                matrix[i][j] = matrix[n-j-1][i]
                matrix[n-j-1][i] = matrix[n-1-i][n-j-1]
                matrix[n-1-i][n-1-j] = matrix[j][n-1-i]
                matrix[j][n-1-i] = temp

Code in Java:

public class Solution {
    public void rotate(int[][] matrix) {
        int n = matrix.length;

        for (int level = 0; level < n/2; level++) {
            for (int i = level; i < n-level-1; i++) {
                int x1 = level, y1 = i;
                int x2 = i, y2 = n-level-1;
                int x3 = n-level-1, y3 = n-i-1;
                int x4 = n-i-1, y4 = level;

                int val1 = matrix[x4][y4], val2 = matrix[x1][y1], val3 = matrix[x2][y2], val4 = matrix[x3][y3];
                matrix[x1][y1] = val1;
                matrix[x2][y2] = val2;
                matrix[x3][y3] = val3;
                matrix[x4][y4] = val4;
            }
        }
    }
}

results matching ""

    No results matching ""