算法-旋转图像(矩阵处理)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法-旋转图像(矩阵处理)相关的知识,希望对你有一定的参考价值。
今天在lintCode做了一道题,自己想了一下做法,做出来,但是觉得有必要记录下来。
题意:
给定一个N×N的二维矩阵表示图像,90度顺时针旋转图像。
样例:
给出一个矩形[[1,2],[3,4]],90度顺时针旋转后,返回[[3,1],[4,2]]
挑战:
能否在原地完成?
1.解题思路
这个题乍一看懵逼,其实非常的简单。下面我用图来表示解题思路:
2.代码
1 public void rotate(int[][] matrix) { 2 if (matrix.length == 0 || matrix[0].length == 0) { 3 return; 4 } 5 //顺时针旋转270度 6 for (int i = 0; i < matrix.length; i++) { 7 for (int j = 0; j < i; j++) { 8 int temp = matrix[i][j]; 9 matrix[i][j] = matrix[j][i]; 10 matrix[j][i] = temp; 11 } 12 } 13 //逆时针旋转180度 14 for(int i = 0; i < matrix.length; i++) { 15 for(int j = 0; j < matrix[0].length / 2; j++) { 16 int temp = matrix[i][j]; 17 matrix[i][j] = matrix[i][matrix[0].length - 1 - j]; 18 matrix[i][matrix[0].length - 1 - j] = temp; 19 } 20 } 21 }
以上是关于算法-旋转图像(矩阵处理)的主要内容,如果未能解决你的问题,请参考以下文章