题目原型:
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?
基本思路:
题目意思就是把图片(矩阵)顺时针旋转90度,分析得,先交换i,j即:A[i][j]与A[j][i]交换,然后逆置每行。
public void rotate(int[][] matrix) { int i = 0; int j = 0; int k = 0; int temp = 0; for(i = 0;i<matrix.length;i++) { for(j=i;j<matrix[0].length;j++) { temp = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = temp; } } for(i=0;i<matrix.length;i++) { for(j=0,k=matrix[0].length-1;j<k;j++,k--) { temp = matrix[i][j]; matrix[i][j] = matrix[i][k]; matrix[i][k] = temp; } } }
原文:http://blog.csdn.net/cow__sky/article/details/19963973