标签:leetcode
https://oj.leetcode.com/problems/rotate-image/
http://blog.csdn.net/linhuanmars/article/details/21503683
public class Solution { // Assume it is a n * n. public void rotate(int[][] matrix) { // Solution A: // rotate_ExtraMatrix(matrix); // Solution B: rotate_TwoRotate(matrix); } //////////////////// // Solution A: ExtraMatrix // private void rotate_ExtraMatrix(int[][] matrix) { int len = matrix.length; int[][] toReturn = new int[len][len]; // Rotate for (int i = 0 ; i < len ; i ++) { for (int j = 0 ; j < len ; j ++) { toReturn[i][j] = matrix[len - 1 - j][i]; } } // Copy for (int i = 0 ; i < len ; i ++) { for (int j = 0 ; j < len ; j ++) { matrix[i][j] = toReturn[i][j]; } } } //////////////////// // Solution B: TwoRotate // private void rotate_TwoRotate(int[][] matrix) { // AAAAA // BBBBB // CCCCC // // => // // CCCCC // BBBBB // AAAAA int len = matrix.length; int mid = len / 2; for (int i = 0 ; i < len ; i ++) { for (int j = 0 ; j < mid ; j ++) { int temp = matrix[len - 1 - j][i]; matrix[len - 1 - j][i] = matrix[j][i]; matrix[j][i] = temp; } } // Swap corner // M A A A // B M A A // B B M A // B B B M // // => // M B B B // A M B B // A A M B // A A A M for (int j = 0 ; j < len ; j ++) { for (int i = 0 ; i < j ; i ++) { int temp = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = temp; } } } }
标签:leetcode
原文地址:http://7371901.blog.51cto.com/7361901/1598604