彪码野郎

  • 首页

  • 分类

  • 归档

输出旋转90°后的矩阵

发表于 2019-08-30 阅读次数:

题目

思路

分析图片

细节分析

每一层正方形都进行次操作即可,下面来看下具体代码的实现。

实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public static void rotate(int[][] matrix) {

int x1 = 0;
int x2 = matrix.length - 1;
int y1 = 0;
int y2 = matrix[0].length - 1;
while(x1 < x2){
rotateEdge(matrix,x1++,x2--,y1++,y2--);
}

}

public static void rotateEdge(int[][] m, int x1, int x2, int y1, int y2) {

//这里用y2 - x1也可以,因为是正方形
int times = x2 - x1;
for(int i = 0; i < times; i++) {
int temp = m[x1 + i][y2];
m[x1 + i][y2] = m[x1][y1+i];
m[x1][y1 + i] = m[x2 - i][y1];
m[x2 - i][y1] = m[x2][y2 - i];
m[x2][y2 - i] = temp;
}
}

public static void main(String[] args) {

int[][] matrix = { { 1, 2, 3 }, { 4, 5, 6 }, {7, 8, 9}};
printMatrix(matrix);
rotate(matrix);
System.out.println("=========");
printMatrix(matrix);
}

上面的代码就是纯粹的算边界问题,兄弟萌可以对照自己画的图进行编码。

旋转打印矩阵
堆及堆排序
  • 文章目录
  • 站点概览
Weapon

Weapon

40 日志
6 分类
4 标签
  1. 1. 题目
  2. 2. 思路
  3. 3. 实现
© 2019 Weapon
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Pisces v7.3.0