先上下交换,在对角线交换
这题是让把矩阵顺时针旋转90度,最简单的一种方式就是先上下关于中心线翻转,然后再对角线翻转,具体看下图形分析
原理比较简单,来直接看下代码
public int[][] rotateMatrix(int[][] matrix, int n) { int length = matrix.length; //先上下交换 for (int i = 0; i < length / 2; i++) { int temp[] = matrix[i]; matrix[i] = matrix[length - i - 1]; matrix[length - i - 1] = temp; } //在按照对角线交换 for (int i = 0; i < length; ++i) { for (int j = i + 1; j < length; ++j) { int temp = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = temp; } } return matrix; }
截止到目前我在公众号“数据结构和算法”中已经写了500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载
下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ
提取码:6666