首页 > 代码库 > [LeetCode]48 Rotate Image
[LeetCode]48 Rotate Image
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]48 Rotate Image
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。